chiark / gitweb /
units: properly terminate readahead collection 10s after boot
[elogind.git] / man / daemon.xml
index 30d39d7be11eeaa177cfc17d95f74783969eee2e..dac244ca4e8abbfd4459d36fbd2b72cefd2927be 100644 (file)
                         activation of daemons. However, the primary
                         advantage of this scheme is that all providers
                         and all consumers of the sockets can be
                         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
                         are established. In addition to that daemons
                         can be restarted with losing only a minimal
                         number of client transactions or even any
@@ -826,22 +826,26 @@ endif</programlisting>
 
                         <programlisting>%post
 if [ $1 -eq 1 ]; then
 
                         <programlisting>%post
 if [ $1 -eq 1 ]; then
-        # Enable (but don't start) the units by default
+        # On install, enable (but don't start) the units by default
         /bin/systemctl enable foobar.service foobar.socket >/dev/null 2>&amp;1 || :
         /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
+        # installation
 fi
 
 %preun
 if [ $1 -eq 0 ]; then
 fi
 
 %preun
 if [ $1 -eq 0 ]; then
-        # Disable and stop the units
+        # On uninstall, disable and stop the units
         /bin/systemctl disable foobar.service foobar.socket >/dev/null 2>&amp;1 || :
         /bin/systemctl stop foobar.service foobar.socket >/dev/null 2>&amp;1 || :
 fi
 
 %postun
         /bin/systemctl disable foobar.service foobar.socket >/dev/null 2>&amp;1 || :
         /bin/systemctl stop foobar.service foobar.socket >/dev/null 2>&amp;1 || :
 fi
 
 %postun
+# On upgrade and uninstall, reload init system configuration, to make systemd honour changed unit files
+/bin/systemctl daemon-reload >/dev/null 2>&amp;1 || :
 if [ $1 -ge 1 ] ; then
 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
+        # Optionally, on upgrade, restart the daemon
         /bin/systemctl try-restart foobar.service >/dev/null 2>&amp;1 || :
 fi</programlisting>
 
         /bin/systemctl try-restart foobar.service >/dev/null 2>&amp;1 || :
 fi</programlisting>
 
@@ -853,6 +857,29 @@ fi</programlisting>
                         <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
                         for details.</para>
 
                         <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
                         for details.</para>
 
+                        <para>To facilitate upgrades from a package
+                        version that shipped only SysV init scripts to
+                        a package version that ships both a SysV init
+                        script and a native systemd service file, use
+                        a fragment like the following:</para>
+
+                        <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 || :
+fi</programlisting>
+
+                        <para>Where 0.47.11-1 is the first package
+                        version that includes the native unit
+                        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 enable
+                        status is not changed. Note that
+                        <command>chkconfig</command> is a command
+                        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>
                 </refsect2>
         </refsect1>
 
                 </refsect2>
         </refsect1>