chiark / gitweb /
man: don't do more reloads than necessary in spec files
[elogind.git] / man / daemon.xml
index 007ec95b97e96a82bba5980c8f98138494dbe184..ea0e6d27f58f665045fe761b1a909e0edd6390a1 100644 (file)
 
                                 <listitem><para>In the child, call
                                 <function>fork()</function> again, to
-                                ensure the daemon can never re-aquire
+                                ensure the daemon can never re-acquire
                                 a terminal again.</para></listitem>
 
                                 <listitem><para>Call <function>exit()</function> in the
                         activation of daemons. However, the primary
                         advantage of this scheme is that all providers
                         and all consumers of the sockets can be
-                        started in parallel as soon als all sockets
+                        started in parallel as soon as all sockets
                         are established. In addition to that daemons
                         can be restarted with losing only a minimal
                         number of client transactions or even any
                         to the CPU and IO schedulers. If a process
                         executed by the init system shall not
                         negatively impact the amount of CPU or IO
-                        bandwith available to other processes, it
+                        bandwidth available to other processes, it
                         should be configured with
                         <varname>CPUSchedulingPolicy=idle</varname>
                         and/or
                         --variable=systemdsystemunitdir</command> (for
                         system services), resp. <command>pkg-config
                         systemd
-                        --variable=systemdsessionunitdir</command>
-                        (for session services). This will make the
+                        --variable=systemduserunitdir</command>
+                        (for user services). This will make the
                         services available in the system on explicit
                         request but not activate them automatically
                         during boot. Optionally, during package
 AC_ARG_WITH([systemdsystemunitdir],
         AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]),
         [], [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)])
-AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
-AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir"])</programlisting>
+if test "x$with_systemdsystemunitdir" != xno; then
+        AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
+fi
+AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ])</programlisting>
 
                         <para>This snippet allows automatic
                         installation of the unit files on systemd
                         machines, and optionally allows their
                         installation even on machines lacking
                         systemd. (Modification of this snippet for the
-                        session unit directory is left as excercise to the
+                        user unit directory is left as excercise to the
                         reader.)</para>
 
                         <para>Additionally, to ensure that
@@ -826,26 +828,29 @@ endif</programlisting>
 
                         <programlisting>%post
 if [ $1 -eq 1 ]; then
-        # Enable (but don't start) the units by default
+        # On install (not upgrade), enable (but don't start) the
+        # units by default
         /bin/systemctl enable foobar.service foobar.socket >/dev/null 2>&amp;1 || :
 
-        # Alternatively, just call /bin/systemctl daemon-reload here,
-        # if the daemon should not be enabled by default on package
+        # Alternatively, just call
+        # /bin/systemctl daemon-reload >/dev/null 2>&amp;1 || :
+        # here, if the daemon should not be enabled by default on
         # installation
 fi
 
 %preun
 if [ $1 -eq 0 ]; then
-        # Disable and stop the units
-        /bin/systemctl disable foobar.service foobar.socket >/dev/null 2>&amp;1 || :
+        # On uninstall (not upgrade), disable and stop the units
+        /bin/systemctl --no-reload disable foobar.service foobar.socket >/dev/null 2>&amp;1 || :
         /bin/systemctl stop foobar.service foobar.socket >/dev/null 2>&amp;1 || :
 fi
 
 %postun
+# Reload init system configuration, to make systemd honour changed
+# or deleted unit files
+/bin/systemctl daemon-reload >/dev/null 2>&amp;1 || :
 if [ $1 -ge 1 ] ; then
-        # On upgrade, reload init system configuration if we changed unit files
-        /bin/systemctl daemon-reload >/dev/null 2>&amp;1 || :
-        # On upgrade, restart the daemon
+        # On upgrade (not uninstall), optionally, restart the daemon
         /bin/systemctl try-restart foobar.service >/dev/null 2>&amp;1 || :
 fi</programlisting>
 
@@ -863,9 +868,9 @@ fi</programlisting>
                         script and a native systemd service file, use
                         a fragment like the following:</para>
 
-                        <programlisting>%triggerin -- foobar &lt; 0.47.11-1
+                        <programlisting>%triggerun -- foobar &lt; 0.47.11-1
 if /sbin/chkconfig foobar ; then
-        /bin/systemctl enable foobar.service foobar.socket >/dev/null 2>&amp;1 || :
+        /bin/systemctl --no-reload enable foobar.service foobar.socket >/dev/null 2>&amp;1 || :
 fi</programlisting>
 
                         <para>Where 0.47.11-1 is the first package
@@ -873,10 +878,10 @@ fi</programlisting>
                         file. This fragment will ensure that the first
                         time the unit file is installed it will be
                         enabled if and only if the SysV init script is
-                        enabled, thus making sure that the the enable
+                        enabled, thus making sure that the enable
                         status is not changed. Note that
                         <command>chkconfig</command> is a command
-                        specific Fedora which can be used to check
+                        specific to Fedora which can be used to check
                         whether a SysV init script is enabled. Other
                         operating systems will have to use different
                         commands here.</para>