X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=man%2Fdaemon.xml;h=dac244ca4e8abbfd4459d36fbd2b72cefd2927be;hb=f6943caa53ac486cc8de580160954ba2b8ffd504;hp=30d39d7be11eeaa177cfc17d95f74783969eee2e;hpb=ee5762e3780c048b230e8c1e7659e40fc1f443bf;p=elogind.git
diff --git a/man/daemon.xml b/man/daemon.xml
index 30d39d7be..dac244ca4 100644
--- a/man/daemon.xml
+++ b/man/daemon.xml
@@ -449,7 +449,7 @@
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
@@ -826,22 +826,26 @@ endif
%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>&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
- # Disable and stop the units
+ # On uninstall, disable and stop the units
/bin/systemctl disable foobar.service foobar.socket >/dev/null 2>&1 || :
/bin/systemctl stop foobar.service foobar.socket >/dev/null 2>&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>&1 || :
if [ $1 -ge 1 ] ; then
- # On upgrade, reload init system configuration if we changed unit files
- /bin/systemctl daemon-reload >/dev/null 2>&1 || :
- # On upgrade, restart the daemon
+ # Optionally, on upgrade, restart the daemon
/bin/systemctl try-restart foobar.service >/dev/null 2>&1 || :
fi
@@ -853,6 +857,29 @@ fi
systemctl1
for details.
+ 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:
+
+ %triggerun -- foobar < 0.47.11-1
+if /sbin/chkconfig foobar ; then
+ /bin/systemctl enable foobar.service foobar.socket >/dev/null 2>&1 || :
+fi
+
+ 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
+ chkconfig 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.