X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=man%2Fsystemd.service.xml;h=103c495fbed5dacc3bbbc338d0cd4a52b380a4d4;hb=ec6039bc08f8e77f92427afec048e4f8ac4b81a8;hp=22c0d5ae9fc33e212b8b35307f9c554f38955b11;hpb=3f41e1e5955552a771748225334b3e8a7eb02b8a;p=elogind.git
diff --git a/man/systemd.service.xml b/man/systemd.service.xml
index 22c0d5ae9..103c495fb 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
@@ -332,6 +333,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 +380,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 +403,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 +431,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.
+