From 4c42e8e1618e2352cb628d459593233a86202ce6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 19 Mar 2013 22:13:48 -0400 Subject: [PATCH] man/service: document behaviour on failure https://bugs.freedesktop.org/show_bug.cgi?id=38355 --- man/systemd.service.xml | 59 +++++++++++++++++++++++++---------------- 1 file changed, 36 insertions(+), 23 deletions(-) diff --git a/man/systemd.service.xml b/man/systemd.service.xml index 2dd3b1977..b82a5c181 100644 --- a/man/systemd.service.xml +++ b/man/systemd.service.xml @@ -302,7 +302,9 @@ argument must be an absolute path name. - When + When Type is + not , only one + command may be given. When Type=oneshot is used, more than one command may be specified. Multiple command lines may @@ -316,19 +318,22 @@ for compatibility with parsers suitable for XDG .desktop files. - The commands are invoked one by one - sequentially in the order they appear - in the unit file. When - Type is not - , only one - command may be given. Lone semicolons - may be escaped as + Lone semicolons may be escaped as '\;'. If the empty string is assigned to this option the list of commands to start is reset, prior assignments of this option will have no effect. + If more than one command is + specified, the commands are invoked + one by one sequentially in the order + they appear in the unit file. If one + of the commands fails (and is not + prefixed with '-'), + other lines are not executed and the + unit is considered failed. + Unless Type=forking is set, the process started via this @@ -343,9 +348,8 @@ line (i.e. the program to execute) may not include specifiers. - On top of that basic environment - variable substitution is - supported. Use + Basic environment variable + substitution is supported. Use ${FOO} as part of a word, or as a word of its own on the command line, in which case it will be @@ -357,8 +361,8 @@ word on the command line, in which case it will be replaced by the value of the environment variable split up - at whitespace, resulting in zero or more - arguments. Note that the first + at whitespace, resulting in zero or + more arguments. Note that the first argument (i.e. the program to execute) may not be a variable, since it must be a literal and absolute path @@ -386,13 +390,14 @@ lines. If shell command lines are to be used they need to be passed explicitly to a shell implementation - of some kind. Example: - ExecStart=/bin/sh -c 'dmesg | tac' + of some kind. Example: + ExecStart=/bin/sh -c 'dmesg | tac' + For services run by a user instance of systemd the special environment variable - MANAGERPID is set + $MANAGERPID is set to the PID of the systemd instance. @@ -410,6 +415,11 @@ that multiple command lines are allowed and the commands are executed one after the other, serially. + + If any of those commands (not + prefixed with '-') + fail, the rest are not executed and + the unit is considered failed. @@ -425,14 +435,17 @@ optional. Specifier and environment variable substitution is supported here following the same scheme as for - ExecStart=. One - additional special environment - variables is set: if known - $MAINPID is set to + ExecStart=. + + One additional special + environment variables is set: if known + $MAINPID is set to the main process of the daemon, and may be used for command lines like the - following: /bin/kill -HUP - $MAINPID. + following: + + /bin/kill -HUP $MAINPID + @@ -456,7 +469,7 @@ service stop is requested. Specifier and environment variable substitution is supported (including - $MAINPID, see + $MAINPID, see above). -- 2.30.2