X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=man%2Fsystemd.service.xml;h=f6b9fe2965af863774b8c22a8db3bd67a12f3099;hb=220ec97ad65150542bb9c8a1ba20b19ea0d49ff8;hp=0cb3d9e351415bca7e50134d417a00633b3a3a47;hpb=1f19a534ea84458670ec011f6d1ba96f76e3f783;p=elogind.git diff --git a/man/systemd.service.xml b/man/systemd.service.xml index 0cb3d9e35..f6b9fe296 100644 --- a/man/systemd.service.xml +++ b/man/systemd.service.xml @@ -305,9 +305,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 +321,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 +329,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 +376,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 +399,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 +427,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 + 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. + @@ -524,10 +583,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 TimeoutStartSec= in + 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. @@ -546,7 +605,7 @@ 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 TimeoutStartSec= in + logic. Defaults to TimeoutStartSec= from the manager configuration file. @@ -863,12 +922,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