X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=man%2Fsystemd.service.xml;h=0b68aa089072c48a0d4798420fb37bbbc537bdee;hb=e7a2419a2ae2a8f56a3e2840f8d623d2a449277a;hp=dbc82edbd47bbcf0e56662faaa3a2abf59b6daa4;hpb=30d88d54f613f9f7831172876ebfd9e285fb043b;p=elogind.git diff --git a/man/systemd.service.xml b/man/systemd.service.xml index dbc82edbd..0b68aa089 100644 --- a/man/systemd.service.xml +++ b/man/systemd.service.xml @@ -301,9 +301,7 @@ as. This option is mandatory for services where Type= is set to - , but its use - is otherwise recommended if the process - takes a name on the D-Bus bus. + . @@ -365,7 +363,7 @@ used, zero or more commands may be specified. This can be specified by providing multiple command lines in - the same directive , or alternatively, + the same directive, or alternatively, this directive may be specified more than once with the same effect. If the empty string is assigned to this @@ -379,11 +377,10 @@ For each of the specified commands, the first argument must be - an absolute and literal path to an - executable. Optionally, if the - absolute file name is prefixed with - @, the second token - will be passed as + an absolute path to an executable. + Optionally, if this file name is + prefixed with @, + the second token will be passed as argv[0] to the executed process, followed by the further arguments specified. If the @@ -548,7 +545,7 @@ when Type=oneshot is used, in which case the timeout is disabled by default - (see systemd-systemd.conf5). + (see systemd-system.conf5). @@ -569,7 +566,7 @@ the timeout logic. Defaults to DefaultTimeoutStopSec= from the manager configuration file - (see systemd-systemd.conf5). + (see systemd-system.conf5). @@ -593,8 +590,9 @@ (i.e. the "keep-alive ping"). If the time between two such calls is larger than the configured time, then the service - is placed in a failed state. By - setting Restart= to + is placed in a failed state and it will + be terminated with SIGABRT. + By setting Restart= to or , the service will be automatically restarted. The @@ -968,21 +966,24 @@ Sockets= Specifies the name of the socket units this service shall - inherit the sockets from when the - service is started. Normally it - should not be necessary to use this - setting as all sockets whose unit + inherit socket file descriptors + from when the service is + started. Normally it should not be + necessary to use this setting as all + socket file descriptors whose unit shares the same name as the service - (ignoring the different suffix of course) - are passed to the spawned - process. - - Note that the same socket may be - passed to multiple processes at the - same time. Also note that a different - service may be activated on incoming - traffic than that which inherits the - sockets. Or in other words: the + (subject to the different unit name + suffix of course) are passed to the + spawned process. + + Note that the same socket file + descriptors may be passed to multiple + processes simultaneously. Also note + that a different service may be + activated on incoming socket traffic + than the one which is ultimately + configured to inherit the socket file + descriptors. Or in other words: the Service= setting of .socket units does not have to match the inverse of @@ -1126,40 +1127,6 @@ - - Compatibility Options - - The following options are also available in the - [Service] section, but exist purely - for compatibility reasons and should not be used in - newly written service files. - - - - SysVStartPriority= - Set the SysV start - priority to use to order this service - in relation to SysV services lacking - LSB headers. This option is only - necessary to fix ordering in relation - to legacy SysV services that have no - ordering information encoded in the - script headers. As such, it should only - be used as a temporary compatibility - option and should not be used in new unit - files. 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 - range 0-99. - - - - Command lines @@ -1180,13 +1147,15 @@ 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 + 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. + becomes part of the same argument. C-style escapes are + also supported, see table below. Quotes themselves are + removed after parsing and escape sequences + substituted. 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 @@ -1200,6 +1169,10 @@ other elements of shell syntax are not supported. + The command to execute must an absolute path + name. It may contain spaces, but control characters + are not allowed. + The command line accepts % specifiers as described in systemd.unit5. @@ -1215,13 +1188,39 @@ contains, resulting in a 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 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. + value of the environment variable split at whitespace + resulting in zero or more arguments. For this type of + expansion, quotes and respected when splitting into + words, and afterwards removed. + + 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. + + Example: + Environment=ONE='one' "TWO='two two' too" THREE= +ExecStart=/bin/echo ${ONE} ${TWO} ${THREE} +ExecStart=/bin/echo $ONE $TWO $THREE + This results in echo being + called twice, the first time with arguments + 'one', + 'two two' too, , + and the second time with arguments + one, two two, + too. + + + 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 @@ -1260,15 +1259,73 @@ &, ;, 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. + + C escapes supported in command lines and environment variables + + + + + + Literal + Actual value + + + + + \a + bell + + + \b + backspace + + + \f + form feed + + + \n + newline + + + \r + carriage return + + + \t + tab + + + \v + vertical tab + + + \\ + backslash + + + \" + double quotation mark + + + \' + single quotation mark + + + \s + space + + + \xxx + character number xx in hexadecimal encoding + + + \nnn + character number nnn in octal encoding + + + +