X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=man%2Fsystemd.service.xml;h=837a992ba4fa1f17f419e86ad73115699facd7df;hb=b8217b7bd5fd171916a095b150fad4c3a37f5a41;hp=7eaf9cbce3a316dc604bfde2e23ce96b3755403f;hpb=b3eaa6288107210a84d6d121036fb4b2f7283ee2;p=elogind.git
diff --git a/man/systemd.service.xml b/man/systemd.service.xml
index 7eaf9cbce..837a992ba 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,9 +178,9 @@
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
+ dbus.socket
unit.
Behaviour of
@@ -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
+ NotifyAccess= is
+ not set, it will be implicitly set to
.
- ValidNoProcess=
+ RemainAfterExit=Takes a boolean value
that specifies whether the service
@@ -213,6 +215,30 @@
+
+ GuessMainPID=
+
+ Takes a boolean value
+ that specifies whether systemd should
+ try to guess the main PID of a service
+ should if it cannot be determined
+ reliably. This option is ignored
+ unless
+ is set and
+ is unset because for the other types
+ or with an explicitly configured PID
+ file the main PID is always known. The
+ guessing algorithm might come to
+ incorrect conclusions if a daemon
+ consists of more than one process. If
+ the main PID cannot be determined
+ failure detection and automatic
+ restarting of a service will not work
+ reliably. Defaults to
+ .
+
+
+
PIDFile=
@@ -221,7 +247,11 @@
daemon. Use of this option is
recommended for services where
Type= is set to
- .
+ . systemd will
+ read the PID of the main process of
+ the daemon after start-up of the
+ service. systemd will not write to the
+ file configured here.
@@ -250,18 +280,59 @@
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
+ abnormal exit due to signal) is ignored
+ and considered success. If both
+ - and
+ @ are used for the
+ same command the former must precede
+ 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. Use
+ ${FOO} as part of a
+ word, or as word of its own on the
+ command line, in which case it will be
+ replaced by the value of the
+ environment variable including all
+ whitespace it 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 up
+ at whitespace, resulting in no or more
+ arguments. Note that the first
+ argument (i.e. the program to execute)
+ may not be a variable, and must be a
+ literal and absolute path
+ name.
@@ -272,20 +343,22 @@
the command in
ExecStart=. Multiple
command lines may be concatenated in a
- single directive, by seperating them
+ single directive, by separating them
by semicolons (these semicolons must
- be passed as seperate words). In that
+ 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,
+ once with 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.
+ optional. Specifier and environment
+ variable substitution is
+ supported.
@@ -297,7 +370,17 @@
scheme as pointed out for
ExecStartPre=
above. Use of this setting is
- optional.
+ 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.
@@ -318,7 +401,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).
@@ -333,7 +420,9 @@
out for
ExecStartPre. Use
of these settings is
- optional.
+ optional. Specifier and environment
+ variable substitution is
+ supported.
@@ -367,29 +456,73 @@
time span value such as "5min
20s". Pass 0 to disable the timeout
logic. Defaults to
- 60s.
+ 90s.
+
+
+
+ WatchdogSec=
+ Configures the
+ watchdog timeout for a service. This
+ is activated when the start-up is
+ completed. The service must call
+ sd_notify3
+ regularly with "WATCHDOG=1". If the
+ time between two such calls is larger
+ than the configured time then the
+ service is placed in a failure
+ state. By setting
+ Restart=
+ to or
+ the service
+ will be automatically restarted. The
+ time configured here will be passed to
+ the executed service process in the
+ WATCHDOG_USEC=
+ environment variable. If
+ this option is used
+ NotifyAccess= (see
+ 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
+ . Defaults to 0,
+ which disables this
+ feature.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 exits. 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
+ restarted only when it exited with an
+ exit code not equalling 0, when
+ terminated by a signal, when an
+ operation times out or when the
+ configured watchdog timeout is
+ triggered. 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
+ whether it exited cleanly or not,
got terminated abnormally by a
- signal.
+ signal or hit a timeout.
@@ -468,7 +601,6 @@
processes of this service shall be
killed. One of
,
- ,
,
.
@@ -480,10 +612,6 @@
stop command (as configured with
ExecStop=) is
executed. If set to
- only
- the members of the process group of
- the main service process are
- killed. If set to
only the main
process itself is killed. If set to
no process is
@@ -495,20 +623,44 @@
group and the control group continues
to exist after stop unless it is
empty. Defaults to
- .
+ .
Processes will first be
- terminated via SIGTERM. If then after
- a delay (configured via the
+ terminated via SIGTERM (unless the
+ signal to send is changed via
+ KillSignal=). If
+ then after a delay (configured via the
TimeoutSec= option)
processes still remain, the
termination request is repeated with
- the SIGKILL signal. See
+ the SIGKILL signal (unless this is
+ disabled via the
+ SendSIGKILL=
+ option). See
kill2
for more
information.
+
+ KillSignal=
+ Specifies which signal
+ to use when killing a
+ service. Defaults to SIGTERM.
+
+
+
+
+ SendSIGKILL=
+ Specifies whether to
+ send SIGKILL to remaining processes
+ after a timeout, if the normal
+ shutdown procedure left processes of
+ the service around. Takes a boolean
+ value. Defaults to "yes".
+
+
+
NonBlocking=Set O_NONBLOCK flag
@@ -535,7 +687,7 @@
or
. If
no daemon status
- updates are accepted by the service
+ updates are accepted from the service
processes, all status update messages
are ignored. If
only service updates sent from the
@@ -543,10 +695,130 @@
accepted. If all
services updates from all members of
the service's control group are
- accepted. This option must be set to
+ accepted. This option should be set to
open access to the notification socket
when using
- Type=notify (see above).
+ Type=notify or
+ WatchdogUsec= (see
+ above). If those options are used but
+ NotifyAccess= not
+ configured it will be implicitly set
+ to
+ .
+
+
+
+ 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
+ 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 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.
+
+
+
+ FsckPassNo=
+ Set the fsck passno
+ priority to use to order this service
+ in relation to other file system
+ checking services. This option is only
+ necessary to fix ordering in relation
+ to fsck jobs automatically created for
+ all /etc/fstab
+ entries with a value in the fs_passno
+ column > 0. As such it should only be
+ used as option for fsck
+ services. 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
+ same range as
+ /etc/fstab's
+ fs_passno column. See
+ fstab5
+ for details.
+
+
+
+ StartLimitInterval=
+ StartLimitBurst=
+
+ Configure service
+ start rate limiting. By default
+ services which are started more often
+ than 5 times within 10s are not
+ permitted to start any more times
+ until the 10s interval ends. With
+ these two options this rate limiting
+ may be modified. Use
+ StartLimitInterval=
+ to configure the checking interval
+ (defaults to 10s, 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
+ configuration options are particularly
+ useful in conjunction with
+ Restart=.
+
+
+
+ StartLimitAction=
+
+ Configure the action
+ to take if the rate limit configured
+ with
+ StartLimitInterval=
+ and
+ StartLimitBurst= is
+ hit. Takes one of
+ ,
+ ,
+ or
+ . If
+ is set,
+ hitting the rate limit will trigger no
+ action besides that the start will not
+ be
+ permitted.
+ causes a reboot following the normal
+ shutdown procedure (i.e. equivalent to
+ systemctl reboot),
+ causes
+ an forced reboot which will terminate
+ all processes forcibly but should
+ cause no dirty file systems on reboot
+ (i.e. equivalent to systemctl
+ reboot -f) and
+
+ causes immediate execution of the
+ reboot2
+ system call, which might result in
+ data loss. Defaults to
+ .