X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=man%2Fsystemd.service.xml;h=c9cd51f739dda1cd0da27273fc07f9fb0c3d3a5a;hb=f23c09b0fdec4a421cc002a38621e5be05ed770b;hp=bceb5aa110232043c157574540ed2c858c933cea;hpb=f3e219a238c716ffa06fab7b0618197c090dfd5a;p=elogind.git
diff --git a/man/systemd.service.xml b/man/systemd.service.xml
index bceb5aa11..c9cd51f73 100644
--- a/man/systemd.service.xml
+++ b/man/systemd.service.xml
@@ -119,7 +119,7 @@
start-up type for this service
unit. One of ,
,
- ,
+ ,
,
.
@@ -129,25 +129,27 @@
configured with
ExecStart= is the
main process of the service. In this
- mode, communication channels must be
- installed before the daemon is started
- up (e.g. sockets set up by systemd,
- via socket activation), as systemd
- will immediately proceed starting
- follow-up units.
+ mode, if the process offers
+ functionality to other processes on
+ the system its communication channels
+ should be installed before the daemon
+ is started up (e.g. sockets set up by
+ systemd, via socket activation), as
+ systemd will immediately proceed
+ starting follow-up units.
If set to
it is
expected that the process configured
with ExecStart=
- will start up and call
- fork(). The
- parent process is expected to finish
- when start-up is complete and all
- communication channels set up. The
- child continues to run as the main
- daemon process. This is the behaviour
- of traditional UNIX daemons. If this
+ will call fork()
+ as part of its start-up. The parent process is
+ expected to exit when start-up is
+ complete and all communication
+ channels set up. The child continues
+ to run as the main daemon
+ process. This is the behaviour of
+ traditional UNIX daemons. If this
setting is used, it is recommended to
also use the
PIDFile= option, so
@@ -158,11 +160,11 @@
exits.Behaviour of
- is similar
+ is similar
to , however
it is expected that the process has to
exit before systemd starts follow-up
- units. ValidNoProcess=
+ units. RemainAfterExit=
is particularly useful for this type
of service.
@@ -176,7 +178,7 @@
will proceed starting follow-up units
after the D-Bus bus name has been
acquired. Service units with this
- option configured implicitly have
+ option configured implicitly gain
dependencies on the
dbus.target
unit.
@@ -193,17 +195,17 @@
notification message has been sent. If
this option is used
NotifyAccess= (see
- below) must be set to open access to
+ below) should be set to open access to
the notification socket provided by
systemd. If
NotifyAccess= is not
- set, it will be implicitly set to
+ set, it will implicitly be set to
.
- ValidNoProcess=
+ RemainAfterExit=Takes a boolean value
that specifies whether the service
@@ -250,18 +252,51 @@
arguments for the process. It is
mandatory to set this option for all
services. This option may not be
- specified more than once. Optionally,
- if the absolute file name is prefixed
- with @, the second
- token will be passed as
+ specified more than once, except when
+ Type=oneshot is
+ used in which case more than one
+ ExecStart= line is
+ accepted which are then invoked one by
+ one, sequentially in the order they
+ appear in the unit file.
+
+ Optionally, if the absolute file
+ name is prefixed with
+ @, the second token
+ will be passed as
argv[0] to the
executed process, followed by the
- further arguments specified. Unless
- Type=forking is set,
- the process started via this command
- line will be considered the main
- process of the
- daemon.
+ further arguments specified. If the
+ first token is prefixed with
+ - an exit code of
+ the command normally considered a
+ failure (i.e. non-zero exit status or
+ abormal exit due to signal) is ignored
+ and considered success. If both
+ - and
+ @ are used for the
+ same command the former must preceed
+ the latter. Unless
+ Type=forking is
+ set, the process started via this
+ command line will be considered the
+ main process of the daemon. The
+ command line accepts % specifiers as
+ described in
+ systemd.unit5. On
+ top of that basic environment variable
+ substitution is supported, where
+ ${FOO} is replaced
+ by the string value of the environment
+ variable of the same name. Also
+ $FOO may appear as
+ separate word on the command line in
+ which case the variable is replaced by
+ its value split at whitespaces. Note
+ that the first argument (i.e. the
+ binary to execute) may not be a
+ variable, and must be a literal and
+ absolute path name.
@@ -270,31 +305,58 @@
Additional commands
that are executed before (resp. after)
the command in
- ExecStart=. If
- specified more than once, all commands
- are executed one after the other,
- serially. Use of these settings is
- optional.
+ ExecStart=. Multiple
+ command lines may be concatenated in a
+ single directive, by separating them
+ by semicolons (these semicolons must
+ be passed as separate words). In that
+ case, the commands are executed one
+ after the other,
+ serially. Alternatively, these
+ directives may be specified more than
+ once whith the same effect. However,
+ the latter syntax is not recommended
+ for compatibility with parsers
+ suitable for XDG
+ .desktop files.
+ Use of these settings is
+ optional. Specifier and environment
+ variable substitution is
+ supported.
ExecReload=Commands to execute to
trigger a configuration reload in the
- service. If used more than once, all
- commands are executed one after the
- other, serially. Use of this setting is optional.
-
+ service. This argument takes multiple
+ command lines, following the same
+ scheme as pointed out for
+ ExecStartPre=
+ above. Use of this setting is
+ optional. Specifier and environment
+ variable substitution is supported
+ here following the same scheme as for
+ ExecStart=. One
+ special environment variable is set:
+ if known $MAINPID is
+ set to the main process of the
+ daemon, and may be used for command
+ lines like the following:
+ /bin/kill -HUP
+ $(MAINPID).
ExecStop=Commands to execute to
stop the service started via
- ExecStart=. If used
- more than once, all commands are
- executed one after the other,
- serially. Use of this setting is
+ ExecStart=. This
+ argument takes multiple command lines,
+ following the same scheme as pointed
+ out for
+ ExecStartPre=
+ above. Use of this setting is
optional. All processes remaining for
a service after the commands
configured in this option are run are
@@ -303,7 +365,11 @@
(see below). If this option is not
specified the process is terminated
right-away when service stop is
- requested.
+ requested. Specifier and environment
+ variable substitution is supported
+ (including
+ $(MAINPID), see
+ above).
@@ -312,11 +378,15 @@
that are executed after the service
was stopped using the commands
configured in
- ExecStop=. If
- specified more than once, all commands
- are executed one after the other,
- serially. Use of these settings is
- optional.
+ ExecStop=. This
+ argument takes multiple command lines,
+ following the same scheme as pointed
+ out for
+ ExecStartPre. Use
+ of these settings is
+ optional. Specifier and environment
+ variable substitution is
+ supported.
@@ -356,19 +426,28 @@
Restart=Configures whether the
- main service process shall be restarted when
- it exists. Takes one of
- ,
- or
- . If
- set to (the
- default) the service will not be
- restarted when it exits. If set to
- it
- will be restarted only when it exited
- cleanly, i.e. terminated with an exit
- code of 0. If set to
- the
+ main service process shall be
+ restarted when it exists. Takes one of
+ ,
+ ,
+ ,
+ or
+ . If set to
+ (the default) the
+ service will not be restarted when it
+ exits. If set to
+ it will be
+ restarted only when it exited cleanly,
+ i.e. terminated with an exit code of
+ 0. If set to
+ it will be
+ restared only when it exited with an
+ exit code not equalling 0, or when
+ terminated by a signal. If set to
+ it will be
+ restarted only if it exits due to
+ reception of an uncaught signal. If
+ set to the
service will be restarted regardless
whether it exited cleanly or not, or
got terminated abnormally by a
@@ -532,6 +611,33 @@
Type=notify (see above).
+
+ Sockets=
+ Specifies the name of
+ the socket units this service shall
+ inherit the sockets from when the
+ service (ignoring the different suffix
+ of course) is started. Normally it
+ should not be necessary to use this
+ setting as all sockets whose unit
+ shares the same name as the service
+ 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 inherits the sockets. Or
+ in other words: The
+ Service= setting of
+ .socket units
+ doesn't have to match the inverse of the
+ Sockets= setting of
+ the .service it
+ refers to.
+
+