From 23a9ffb0935b6814c6b267fe22f94f1436bb7a5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Fri, 14 Sep 2018 16:02:48 +0200 Subject: [PATCH 1/2] man: add a description of systemctl return codes Fixes #10056. --- man/systemctl.xml | 52 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/man/systemctl.xml b/man/systemctl.xml index e12e50dc80..2bf20142c0 100644 --- a/man/systemctl.xml +++ b/man/systemctl.xml @@ -1940,8 +1940,56 @@ Jan 12 10:46:45 example.com bluetoothd[8900]: gatt-time-server: Input/output err Exit status - On success, 0 is returned, a non-zero failure - code otherwise. + On success, 0 is returned, a non-zero failure code otherwise. + + systemctl uses the return codes defined by LSB, as defined in + LSB 3.0.0. + + + + LSB return codes + + + + + Value + Description in LSB + Use in systemd + + + + + 0 + "program is running or service is OK" + unit is active + + + 1 + "program is dead and /var/run pid file exists" + unit not failed (used by is-failed) + + + 2 + "program is dead and /var/lock lock file exists" + unused + + + 3 + "program is not running" + unit is not active + + + 4 + "program or service status is unknown" + no such unit + + + +
+ + The mapping of LSB service states to systemd unit states is imperfect, so it is better to + not rely on those return values but to look for specific unit states and substates instead. +
From 4aabca00581f262fc0c5a1a31ab3978e68cb0ddf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Fri, 14 Sep 2018 16:39:47 +0200 Subject: [PATCH 2/2] man: remove recommendation to pull in slices from slices.target That recommendation is likely to cause more trouble and for pretty much all end-user units is not useful. Let's recommend relying on the implicit dependency instead. Fixes #10015. --- man/systemd.special.xml | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/man/systemd.special.xml b/man/systemd.special.xml index 38006c6abd..0d25e40d03 100644 --- a/man/systemd.special.xml +++ b/man/systemd.special.xml @@ -596,14 +596,18 @@ A special target unit that sets up all slice units (see systemd.slice5 - for details) that shall be active after boot. By default the generic - system.slice slice unit, as well as the root slice unit - -.slice, is pulled in and ordered before this unit (see + for details) that shall always be active after boot. By default the generic + system.slice slice unit as well as the root slice unit + -.slice are pulled in and ordered before this unit (see below). - It's a good idea to add WantedBy=slices.target lines to the - [Install] section of all slices units that may be installed - dynamically. + Adding slice units to slices.target is generally not + necessary. Instead, when some unit that uses Slice= is started, the + specified slice will be started automatically. Adding + WantedBy=slices.target lines to the [Install] + section should only be done for units that need to be always active. In that case care + needs to be taken to avoid creating a loop through the automatic dependencies on + "parent" slices.