X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=man%2Fsystemd.service.xml;h=72b872beced11be7146da478c10c6dd3913b548e;hp=27f069f6b2a5ccaabbefecc4071c37b9fa9b9fde;hb=29e254f7f093c07a1ec7e845e60203357f585235;hpb=12b25f300151b68330aca58e1cea8317da59cadd diff --git a/man/systemd.service.xml b/man/systemd.service.xml index 27f069f6b..72b872bec 100644 --- a/man/systemd.service.xml +++ b/man/systemd.service.xml @@ -392,16 +392,32 @@ replaced by the value of the environment variable including all whitespace it contains, resulting in a - single argument. Use + single argument. Use $FOO as a separate 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. To pass a literal dollar sign, - use $$. Note that the first - argument (i.e. the program to execute) - may not be a variable. + of the environment variable split at + whitespace, resulting in zero or more + arguments. To pass a literal dollar + sign, use $$. + Variables whose value is not known at + expansion time are treated as empty + strings. Note that the first argument + (i.e. the program to execute) may not + be a variable. + + Variables to be used in this + fashion may be defined through + Environment= and + EnvironmentFile=. + In addition, variables listed in + section "Environment variables in + spawned processes" in + systemd.exec5 + which are considered "static + configuration" may used (this includes + e.g. $USER, but not + $TERM). Optionally, if the absolute file name is prefixed with @@ -429,11 +445,6 @@ ExecStart=/bin/sh -c 'dmesg | tac' - Only select environment variables that - are set for executed commands. See - systemd.exec5. - - Example: ExecStart=/bin/echo one ; /bin/echo "two two" @@ -734,22 +745,36 @@ ExecStart=/bin/echo $ONE $TWO ${TWO} considered successful termination, in addition to the normal successful exit code 0 and the signals SIGHUP, SIGINT, - SIGTERM and SIGPIPE. Exit status + SIGTERM, and SIGPIPE. Exit status definitions can either be numeric exit codes or termination signal names, - separated by spaces. Example: - SuccessExitStatus=1 2 8 - SIGKILL, ensures that exit - codes 1, 2, 8 and the termination - signal SIGKILL are considered clean - service terminations. This option may - appear more than once in which case - the list of successful exit statuses - is merged. If the empty string is - assigned to this option, the list is - reset, all prior assignments of this - option will have no - effect. + separated by spaces. Signals will only + be considered if the service does not implement + a signal handler and exits as a direct result + of receiving the signal. For example: + SuccessExitStatus=1 2 8 SIGKILL + ensures that exit codes 1, 2, 8 and + the termination signal + SIGKILL are + considered clean service terminations. + + + Note that if a process has a + signal handler installed and exits by + calling + _exit2 + in response to a signal, the + information about the signal is lost. + Programs should instead perform cleanup and kill themselves with the same signal instead. See + Proper handling of SIGINT/SIGQUIT — How to be a proper program. + + This option may appear more than once + in which case the list of successful + exit statuses is merged. If the empty + string is assigned to this option, the + list is reset, all prior assignments + of this option will have no + effect.