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=c06e14efc23e1c64b30515cc78de8a612c44b83d;hb=29e254f7f093c07a1ec7e845e60203357f585235;hpb=f4d213c15b92c2a420a2f4fc13d4959071c22b82 diff --git a/man/systemd.service.xml b/man/systemd.service.xml index c06e14efc..72b872bec 100644 --- a/man/systemd.service.xml +++ b/man/systemd.service.xml @@ -76,8 +76,8 @@ systemd.kill5, which define the way the processes of the service are terminated, and in - systemd.cgroup5, - which configure control group settings for the + systemd.resource-control5, + which configure resource control settings for the processes of the service. Unless DefaultDependencies= @@ -139,9 +139,11 @@ If set to (the default - value if BusName= - is not specified), it is expected that - the process configured with + value if neither + Type= nor + BusName= are + specified), it is expected that the + process configured with ExecStart= is the main process of the service. In this mode, if the process offers @@ -305,9 +307,10 @@ ExecStart= Commands with their arguments that are executed when this - service is started. The first - argument must be an absolute path - name. + service is started. For each of the + specified commands, the first argument + must be an absolute and literal path + to an executable. When Type is not , only one @@ -320,11 +323,7 @@ (these semicolons must be passed as separate words). Alternatively, this directive may be specified more than - once with the same effect. However, - the latter syntax is not recommended - for compatibility with parsers - suitable for XDG - .desktop files. + once with the same effect. Lone semicolons may be escaped as \;. If the empty string is assigned to this option, the @@ -332,6 +331,35 @@ prior assignments of this option will have no effect. + Each command line is split on + whitespace, with the first item being + the command to execute, and the + subsequent items being the arguments. + Double quotes ("...") and single + quotes ('...') may be used, in which + case everything until the next + matching quote becomes part of the + same argument. Quotes themselves are + removed after parsing. In addition, a + trailing backslash + (\) may be used to + merge lines. This syntax is intended + to be very similar to shell syntax, + but only the meta-characters and + expansions described in the following + paragraphs are understood. + Specifically, redirection using + <, + <<, + >, and + >>, pipes + using |, and + running programs in the background + using & + and other elements of shell + syntax are not supported. + + If more than one command is specified, the commands are invoked one by one sequentially in the order @@ -350,10 +378,11 @@ The command line accepts % specifiers as described in - systemd.unit5. Note - that the first argument of the command - line (i.e. the program to execute) may - not include specifiers. + systemd.unit5. + Note that the first argument of the + command line (i.e. the program to + execute) may not include + specifiers. Basic environment variable substitution is supported. Use @@ -363,18 +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 literal dollar sign - use $$. 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 - name. + 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 @@ -402,13 +445,42 @@ ExecStart=/bin/sh -c 'dmesg | tac' - For services run by a user - instance of systemd the special - environment variable - $MANAGERPID is set - to the PID of the systemd - instance. - + Example: + ExecStart=/bin/echo one ; /bin/echo "two two" + + This will execute + /bin/echo two + times, each time with one argument, + one and + two two, + respectively. Since two commands are + specified, + Type=oneshot must + be used. + + Example: + ExecStart=/bin/echo / >/dev/null & \; \ +/bin/ls + + This will execute + /bin/echo with five + arguments: /, + >/dev/null, + &, + ;, and + /bin/ls. + + Example: + Environment="ONE=one" 'TWO=two two' +ExecStart=/bin/echo $ONE $TWO ${TWO} + + This will execute + /bin/echo with four + arguments: one, + two, + two, and + two two. + @@ -524,9 +596,10 @@ Takes a unit-less value in seconds, or a time span value such as "5min 20s". Pass 0 to disable the timeout - logic. Defaults to 90s, except when + logic. Defaults to TimeoutStartSec= from the + manager configuration file, except when Type=oneshot is - used in which case the timeout + used, in which case the timeout is disabled by default. @@ -545,7 +618,8 @@ Takes a unit-less value in seconds, or a time span value such as "5min 20s". Pass 0 to disable the timeout - logic. Defaults to 90s. + logic. Defaults to TimeoutStartSec= from the + manager configuration file. @@ -651,7 +725,7 @@ timeout for the service expires. If set to , the service - will be restarted regardless whether + will be restarted regardless of whether it exited cleanly or not, got terminated abnormally by a signal or hit a timeout. @@ -671,22 +745,36 @@ 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. @@ -861,12 +949,15 @@ these two options, this rate limiting may be modified. Use StartLimitInterval= - to configure the checking interval - (defaults to 10s, set to 0 to disable + to configure the checking interval (defaults to + DefaultStartLimitInterval= in + manager configuration file, set to 0 to disable any kind of rate limiting). Use StartLimitBurst= to configure how many starts per interval - are allowed (defaults to 5). These + are allowed (defaults to + DefaultStartLimitBurst= in + manager configuration file). These configuration options are particularly useful in conjunction with Restart=, however @@ -970,33 +1061,6 @@ range 0-99. - - FsckPassNo= - Set the fsck passno - priority to use to order this service - in relation to other file system - checking services. This option is only - necessary to fix ordering in relation - to fsck jobs automatically created for - all /etc/fstab - entries with a value in the fs_passno - column > 0. As such it should only be - used as option for fsck - services. Almost always it is a better - choice to add explicit ordering - directives via - After= or - Before=, - instead. For more details see - systemd.unit5. If - used, pass an integer value in the - same range as - /etc/fstab's - fs_passno column. See - fstab5 - for details. - - @@ -1007,7 +1071,7 @@ systemctl8, systemd.unit5, systemd.exec5, - systemd.cgroup5, + systemd.resource-control5, systemd.kill5, systemd.directives7