X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=man%2Fdaemon.xml;h=007ec95b97e96a82bba5980c8f98138494dbe184;hp=fb22e6c6165d88f4d950542fba0e7a37baf0d25a;hb=6908d3842a3b69b90106646a16f51a6b089026bd;hpb=828f33e89bc2fa7ee9bc9f977c04d0e30336d848 diff --git a/man/daemon.xml b/man/daemon.xml index fb22e6c61..007ec95b9 100644 --- a/man/daemon.xml +++ b/man/daemon.xml @@ -543,10 +543,10 @@ the hardware of the respective kind is plugged in or otherwise becomes available. In a new-style init system it is possible to bind - activation to hardware plug/unplug events. In systemd, - kernel devices appearing in the sysfs/udev - device tree can be exposed as units if they - are tagged with the string + activation to hardware plug/unplug events. In + systemd, kernel devices appearing in the + sysfs/udev device tree can be exposed as units + if they are tagged with the string "systemd". Like any other kind of unit they may then pull in other units when activated (i.e. Plugged in) and thus @@ -570,8 +570,9 @@ bluetoothd.service via controlling a bluetooth.target.wants/ - symlink uniformly with a tool like - systemd-install1 + symlink uniformly with a command like + enable of + systemctl1 instead of manipulating the udev ruleset. @@ -756,9 +757,9 @@ install their systemd unit files in the directory returned by pkg-config systemd - --variable=systemdsystemunitdir - (for system services), - resp. pkg-config systemd + --variable=systemdsystemunitdir (for + system services), resp. pkg-config + systemd --variable=systemdsessionunitdir (for session services). This will make the services available in the system on explicit @@ -767,8 +768,9 @@ installation (e.g. rpm -i by the administrator) symlinks should be created in the systemd configuration - directories via the - systemd-install1 + directories via the enable + command of the + systemctl1 tool, to activate them automatically on boot. @@ -823,22 +825,61 @@ endif package managers: %post -/usr/bin/systemd-install --realize enable foobar.service foobar.socket >/dev/null 2>&1 || : +if [ $1 -eq 1 ]; then + # 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 - /usr/bin/systemd-install --realize disable foobar.service foobar.socket >/dev/null 2>&1 || : +if [ $1 -eq 0 ]; then + # 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 +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 + /bin/systemctl try-restart foobar.service >/dev/null 2>&1 || : fi Depending on whether your service should or should not be started/stopped/restarted during package installation, deinstallation or - upgrade, a different argument to - may be + upgrade, a different set of commands may be specified. See - systemd-install1 + 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: + + %triggerin -- 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 the enable + status is not changed. Note that + chkconfig is a command + specific Fedora which can be used to check + whether a SysV init script is enabled. Other + operating systems will have to use different + commands here. @@ -909,7 +950,6 @@ fi See Also systemd1, - systemd-install1, sd-daemon7, sd_listen_fds3, sd_notify3,