X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=man%2Fsystemd.service.xml;h=98507f405f96e96a632dd9d45031c5e99b5ff4dc;hb=a9a305332b7faf0d0d16db04909badaf6a095fef;hp=d1f4a2d7d76c9f73b9b9dad540e1ec9da90a16cd;hpb=63ba209d8bc64137ff1585d5878328c93cb81b61;p=elogind.git diff --git a/man/systemd.service.xml b/man/systemd.service.xml index d1f4a2d7d..98507f405 100644 --- a/man/systemd.service.xml +++ b/man/systemd.service.xml @@ -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 @@ -372,9 +401,7 @@ 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, since it must - be a literal and absolute path - name. + may not be a variable. Optionally, if the absolute file name is prefixed with @@ -402,13 +429,47 @@ 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. - + Only select environment variables that + are set for executed commands. See + systemd.exec5. + + + 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. + @@ -653,7 +714,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. @@ -673,22 +734,33 @@ 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. 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. @@ -863,12 +935,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