diff options
Diffstat (limited to 'man/systemd.service.xml')
-rw-r--r-- | man/systemd.service.xml | 93 |
1 files changed, 83 insertions, 10 deletions
diff --git a/man/systemd.service.xml b/man/systemd.service.xml index da9079cbb8..0b68aa0890 100644 --- a/man/systemd.service.xml +++ b/man/systemd.service.xml @@ -377,11 +377,10 @@ <para>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 - <literal>@</literal>, the second token - will be passed as + an absolute path to an executable. + Optionally, if this file name is + prefixed with <literal>@</literal>, + the second token will be passed as <literal>argv[0]</literal> to the executed process, followed by the further arguments specified. If the @@ -1148,13 +1147,15 @@ <para>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 (<literal>\</literal>) may be used to merge - lines. </para> + 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 + (<literal>\</literal>) may be used to merge lines. + </para> <para>This syntax is intended to be very similar to shell syntax, but only the meta-characters and @@ -1168,6 +1169,10 @@ <emphasis>other elements of shell syntax are not supported</emphasis>.</para> + <para>The command to execute must an absolute path + name. It may contain spaces, but control characters + are not allowed.</para> + <para>The command line accepts <literal>%</literal> specifiers as described in <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>. @@ -1253,6 +1258,74 @@ ExecStart=/bin/echo $ONE $TWO $THREE</programlisting> <literal>>/dev/null</literal>, <literal>&</literal>, <literal>;</literal>, and <literal>/bin/ls</literal>.</para> + + <table> + <title>C escapes supported in command lines and environment variables</title> + <tgroup cols='2'> + <colspec colname='escape' /> + <colspec colname='meaning' /> + <thead> + <row> + <entry>Literal</entry> + <entry>Actual value</entry> + </row> + </thead> + <tbody> + <row> + <entry><literal>\a</literal></entry> + <entry>bell</entry> + </row> + <row> + <entry><literal>\b</literal></entry> + <entry>backspace</entry> + </row> + <row> + <entry><literal>\f</literal></entry> + <entry>form feed</entry> + </row> + <row> + <entry><literal>\n</literal></entry> + <entry>newline</entry> + </row> + <row> + <entry><literal>\r</literal></entry> + <entry>carriage return</entry> + </row> + <row> + <entry><literal>\t</literal></entry> + <entry>tab</entry> + </row> + <row> + <entry><literal>\v</literal></entry> + <entry>vertical tab</entry> + </row> + <row> + <entry><literal>\\</literal></entry> + <entry>backslash</entry> + </row> + <row> + <entry><literal>\"</literal></entry> + <entry>double quotation mark</entry> + </row> + <row> + <entry><literal>\'</literal></entry> + <entry>single quotation mark</entry> + </row> + <row> + <entry><literal>\s</literal></entry> + <entry>space</entry> + </row> + <row> + <entry><literal>\x<replaceable>xx</replaceable></literal></entry> + <entry>character number <replaceable>xx</replaceable> in hexadecimal encoding</entry> + </row> + <row> + <entry><literal>\<replaceable>nnn</replaceable></literal></entry> + <entry>character number <replaceable>nnn</replaceable> in octal encoding</entry> + </row> + </tbody> + </tgroup> + </table> </refsect1> <refsect1> |