systemd.service.xml revision a354329f724d6ce913d2ccffb2be8f3327a67faa
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"?>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann This file is part of systemd.
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann Copyright 2010 Lennart Poettering
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann systemd is free software; you can redistribute it and/or modify it
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann under the terms of the GNU Lesser General Public License as published by
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann the Free Software Foundation; either version 2.1 of the License, or
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann (at your option) any later version.
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann systemd is distributed in the hope that it will be useful, but
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann WITHOUT ANY WARRANTY; without even the implied warranty of
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann Lesser General Public License for more details.
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann You should have received a copy of the GNU Lesser General Public License
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann along with systemd; If not, see <http://www.gnu.org/licenses/>.
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <refentryinfo>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <authorgroup>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann </authorgroup>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann </refentryinfo>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <refentrytitle>systemd.service</refentrytitle>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <refpurpose>Service unit configuration</refpurpose>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann </refnamediv>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <refsynopsisdiv>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <para><filename><replaceable>service</replaceable>.service</filename></para>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann </refsynopsisdiv>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <para>A unit configuration file whose name ends in
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann <filename>.service</filename> encodes information
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann about a process controlled and supervised by
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann systemd.</para>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <para>This man page lists the configuration options
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann specific to this unit type. See
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann for the common options of all unit configuration
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann files. The common configuration items are configured
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann in the generic <literal>[Unit]</literal> and
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <literal>[Install]</literal> sections. The service
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann specific configuration options are configured in the
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <literal>[Service]</literal> section.</para>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <para>Additional options are listed in
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann which define the execution environment the commands
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann are executed in, and in
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann <citerefentry><refentrytitle>systemd.kill</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann which define the way the processes of the service are
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann terminated, and in
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann which configure resource control settings for the
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann processes of the service.</para>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <para>Unless <varname>DefaultDependencies=</varname>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann is set to <option>false</option>, service units will
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann implicitly have dependencies of type
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <filename>basic.target</filename> as well as
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann dependencies of type <varname>Conflicts=</varname> and
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <filename>shutdown.target</filename>. These ensure
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann that normal service units pull in basic system
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann initialization, and are terminated cleanly prior to
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann system shutdown. Only services involved with early
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann boot or late system shutdown should disable this
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann option.</para>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <para>If a service is requested under a certain name
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann but no unit configuration file is found, systemd looks
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann for a SysV init script by the same name (with the
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <filename>.service</filename> suffix removed) and
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann dynamically creates a service unit from that
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann script. This is useful for compatibility with
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann SysV. Note that this compatibility is quite
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann comprehensive but not 100%. For details about the
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann incompatibilities, see the <ulink
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann url="http://www.freedesktop.org/wiki/Software/systemd/Incompatibilities">Incompatibilities
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann with SysV</ulink> document.
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <para>Service files must include a
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <literal>[Service]</literal> section, which carries
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann information about the service and the process it
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann supervises. A number of options that may be used in
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann this section are shared with other unit types. These
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann options are documented in
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <citerefentry><refentrytitle>systemd.kill</refentrytitle><manvolnum>5</manvolnum></citerefentry>. The
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann options specific to the <literal>[Service]</literal>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann section of service units are the following:</para>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <varlistentry>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann start-up type for this service
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <para>If set to
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann specified), it is expected that the
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann process configured with
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann main process of the service. In this
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann mode, if the process offers
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann functionality to other processes on
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann the system, its communication channels
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann should be installed before the daemon
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann is started up (e.g. sockets set up by
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann systemd, via socket activation), as
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann systemd will immediately proceed
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann starting follow-up units.</para>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <para>If set to
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann expected that the process configured
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann as part of its start-up. The parent process is
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann expected to exit when start-up is
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann complete and all communication
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann channels are set up. The child continues
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann to run as the main daemon
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann process. This is the behavior of
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann traditional UNIX daemons. If this
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann setting is used, it is recommended to
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann that systemd can identify the main
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann process of the daemon. systemd will
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann proceed with starting follow-up units
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann as soon as the parent process
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann exits.</para>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <para>Behavior of
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann is expected that the process has to
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann exit before systemd starts follow-up
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann is particularly useful for this type
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann of service. This is the implied
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann default if neither
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann specified.</para>
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann <para>Behavior of
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann expected that the daemon acquires a
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann name on the D-Bus bus, as configured
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann will proceed with starting follow-up
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann units after the D-Bus bus name has been
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann acquired. Service units with this
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann option configured implicitly gain
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann dependencies on the
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann unit. This type is the default if
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann specified.</para>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <para>Behavior of
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann expected that the daemon sends a
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann notification message via
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann or an equivalent call when it has finished
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann starting up. systemd will proceed with
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann starting follow-up units after this
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann notification message has been sent. If
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann this option is used,
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann below) should be set to open access to
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann the notification socket provided by
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann not set, it will be implicitly set to
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <varname>Type=</varname><option>notify</option>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann will not work if used in combination with
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <varname>PrivateNetwork=</varname><option>yes</option>.</para>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <para>Behavior of
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann actual execution of the service
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann binary is delayed until all jobs are
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann dispatched. This may be used to avoid
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann interleaving of output of shell
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann services with the status output on the
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann console.</para>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann </varlistentry>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <varlistentry>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <term><varname>RemainAfterExit=</varname></term>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann that specifies whether the service
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann shall be considered active even when
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann all its processes exited. Defaults to
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann </varlistentry>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <varlistentry>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <term><varname>GuessMainPID=</varname></term>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann that specifies whether systemd should
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann try to guess the main PID of a service
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann if it cannot be determined
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann reliably. This option is ignored
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann is unset because for the other types
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann or with an explicitly configured PID
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann file, the main PID is always known. The
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann guessing algorithm might come to
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann incorrect conclusions if a daemon
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann consists of more than one process. If
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann the main PID cannot be determined,
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann failure detection and automatic
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann restarting of a service will not work
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann reliably. Defaults to
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann </varlistentry>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <varlistentry>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann name pointing to the PID file of this
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann daemon. Use of this option is
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann recommended for services where
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann read the PID of the main process of
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann the daemon after start-up of the
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann service. systemd will not write to the
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann file configured here.</para>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann </varlistentry>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <varlistentry>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann name that this service is reachable
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann as. This option is mandatory for
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann services where
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann </varlistentry>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <varlistentry>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <ulink url="https://code.google.com/p/d-bus/">kdbus</ulink>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann endpoint will be created and installed as the
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann default bus node for the service. Such a custom
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann endpoint can hold an own set of policy rules
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann that are enforced on top of the bus-wide ones.
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann The custom endpoint is named after the service
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann it was created for, and its node will be
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann bind-mounted over the default bus node
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann location, so the service can only access the
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann bus through its own endpoint. Note that custom
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann bus endpoints default to a 'deny all' policy.
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann Hence, if at least one
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann given, you have to make sure to add explicit
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann rules for everything the service should be able
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann to do.</para>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <para>The value of this directive is comprised
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann of two parts; the bus name, and a verb to
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann specify to granted access, which is one of
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <option>see</option>, and <option>own</option>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann If multiple access levels are specified for the
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann same bus name, the most powerful one takes
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <programlisting>BusPolicy=org.freedesktop.systemd1 talk</programlisting>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <programlisting>BusPolicy=org.foo.bar see</programlisting>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <para>This option is only available on kdbus enabled systems.</para>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann </varlistentry>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <varlistentry>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann arguments that are executed when this
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann service is started. The value is split
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann into zero or more command lines is
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann according to the rules described below
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann (see section "Command Lines" below).
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann command may and must be given. When
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann used, zero or more commands may be
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann specified. This can be specified by
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann providing multiple command lines in
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann the same directive, or alternatively,
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann this directive may be specified more
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann than once with the same effect. If the
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann empty string is assigned to this
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann option, the list of commands to start
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann is reset, prior assignments of this
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann option will have no effect. If no
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann specified, then the service must have
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <para>For each of the specified
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann commands, the first argument must be
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann an absolute path to an executable.
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann Optionally, if this file name is
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann the second token will be passed as
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann executed process, followed by the
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann further arguments specified. If the
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann absolute filename is prefixed with
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann the command normally considered a
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann failure (i.e. non-zero exit status or
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann abnormal exit due to signal) is
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann ignored and considered success. If
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann can appear in either order.</para>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <para>If more than one command is
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann specified, the commands are invoked
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann sequentially in the order they appear
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann in the unit file. If one of the
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann commands fails (and is not prefixed
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann lines are not executed, and the unit
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann is considered failed.</para>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann set, the process started via this
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann command line will be considered the
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann main process of the daemon.</para>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann </varlistentry>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <varlistentry>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <term><varname>ExecStartPre=</varname></term>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <term><varname>ExecStartPost=</varname></term>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann that are executed before or after
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann the command in
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <varname>ExecStart=</varname>, respectively.
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann Syntax is the same as for
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann that multiple command lines are allowed
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann and the commands are executed one
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann after the other, serially.</para>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <para>If any of those commands (not
c4a3a17ee919e8b1197328394709edfe36d8b710Marcel Holtmann fail, the rest are not executed and
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann the unit is considered failed.</para>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann </varlistentry>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <varlistentry>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann trigger a configuration reload in the
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann service. This argument takes multiple
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann command lines, following the same
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann scheme as described for
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann above. Use of this setting is
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann optional. Specifier and environment
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann variable substitution is supported
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann here following the same scheme as for
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <para>One additional, special
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann environment variable is set: if known,
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann the main process of the daemon, and
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann may be used for command lines like the
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann following:</para>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <programlisting>/bin/kill -HUP $MAINPID</programlisting>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <para>Note however that reloading a
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann daemon by sending a signal (as with
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann the example line above) is usually not
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann a good choice, because this is an
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann asynchronous operation and hence not
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann suitable to order reloads of multiple
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann services against each other. It is
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann strongly recommended to set
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann command that not only triggers a
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann configuration reload of the daemon,
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann but also synchronously waits for it to
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann complete.</para>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann </varlistentry>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <varlistentry>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann stop the service started via
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann argument takes multiple command lines,
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann following the same scheme as described
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann above. Use of this setting is
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann optional. After the commands configured
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann in this option are run, all processes
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann remaining for a service are
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann terminated according to the
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <citerefentry><refentrytitle>systemd.kill</refentrytitle><manvolnum>5</manvolnum></citerefentry>). If
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann this option is not specified, the
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann process is terminated immediately when
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann service stop is requested. Specifier
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann and environment variable substitution
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann is supported (including
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann </varlistentry>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <varlistentry>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <term><varname>ExecStopPost=</varname></term>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann that are executed after the service
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann was stopped. This includes cases where
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann the commands configured in
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann where the service does not have any
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann where the service exited unexpectedly. This
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann argument takes multiple command lines,
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann following the same scheme as described
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann of these settings is
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann optional. Specifier and environment
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann variable substitution is
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann </varlistentry>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <varlistentry>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann sleep before restarting a service (as
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann configured with
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann unit-less value in seconds, or a time
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann span value such as "5min
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann 20s". Defaults to
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann </varlistentry>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <varlistentry>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <term><varname>TimeoutStartSec=</varname></term>
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann wait for start-up. If a
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann daemon service does not signal
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann start-up completion within the
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann configured time, the service will be
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann considered failed and will be shut
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann Takes a unit-less value in seconds, or a
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann time span value such as "5min
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann disable the timeout logic. Defaults to
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann <varname>DefaultTimeoutStartSec=</varname> from
94f5bbc626f2a4102debd9b17c964170a887cb49Marcel Holtmann the manager configuration file, except
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann used, in which case the timeout
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann is disabled by default
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann (see <citerefentry><refentrytitle>systemd-system.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>).
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann </varlistentry>
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann <varlistentry>
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann <term><varname>TimeoutStopSec=</varname></term>
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann wait for stop. If a service is asked
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann to stop, but does not terminate in the
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann specified time, it will be terminated
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann and after another timeout of equal duration
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann in <citerefentry><refentrytitle>systemd.kill</refentrytitle><manvolnum>5</manvolnum></citerefentry>).
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann Takes a unit-less value in seconds, or a
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann time span value such as "5min
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann the timeout logic. Defaults to
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann <varname>DefaultTimeoutStopSec=</varname> from the
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann manager configuration file
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann (see <citerefentry><refentrytitle>systemd-system.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>).
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann </varlistentry>
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann <varlistentry>
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann to the specified value.
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann </varlistentry>
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann <varlistentry>
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann <term><varname>WatchdogSec=</varname></term>
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann watchdog timeout for a service. The
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann watchdog is activated when the start-up is
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann completed. The service must call
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann <citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry>
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann regularly with <literal>WATCHDOG=1</literal>
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann (i.e. the "keep-alive ping"). If the time
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann between two such calls is larger than
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann the configured time, then the service
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann is placed in a failed state and it will
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann be terminated with <varname>SIGABRT</varname>.
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann will be automatically restarted. The
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann time configured here will be passed to
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann the executed service process in the
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann environment variable. This allows
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann daemons to automatically enable the
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann keep-alive pinging logic if watchdog
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann support is enabled for the service. If
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann this option is used,
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann below) should be set to open access to
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann the notification socket provided by
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann not set, it will be implicitly set to
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann which disables this
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann </varlistentry>
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann <varlistentry>
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann service shall be restarted when the
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann service process exits, is killed,
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann or a timeout is reached. The service
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann process may be the main service
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann process, but it may also be one of the
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann processes specified with
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann When the death of the process is a
4b28cdeb2332cfbd3f5172b43a2f5f534b7e6e57Marcel Holtmann result of systemd operation (e.g. service
4b28cdeb2332cfbd3f5172b43a2f5f534b7e6e57Marcel Holtmann stop or restart), the service will not be
4b28cdeb2332cfbd3f5172b43a2f5f534b7e6e57Marcel Holtmann restarted. Timeouts include missing
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann the watchdog "keep-alive ping"
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann deadline and a service start, reload,
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann and stop operation timeouts.</para>
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann <para>Takes one of
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann service will not be restarted. If set
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann will be restarted only when the
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann service process exits cleanly. In
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann this context, a clean exit means an
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann exit code of 0, or one of the signals
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann additionally, exit statuses and
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann signals specified in
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann the service will be restarted when the
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann process exits with a non-zero exit
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann code, is terminated by a signal
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann (including on core dump, but excluding
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann the aforementiond four signals), when
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann an operation (such as service reload)
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann times out, and when the configured
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann watchdog timeout is triggered. If set
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann service will be restarted when the
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann process is terminated by a signal
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann (including on core dump, excluding the
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann aforementioned four signals), when an
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann operation times out, or when the
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann watchdog timeout is triggered. If set
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann service will be restarted only if the
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann service process exits due to an
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann uncaught signal not specified as a
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann clean exit status. If set to
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann service will be restarted only if the
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann watchdog timeout for the service
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann expires. If set to
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann will be restarted regardless of
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann whether it exited cleanly or not, got
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann terminated abnormally by a signal, or
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann hit a timeout.</para>
5476ad087c0f2d45ab0dab1bab9ef3e9d70418bcMarcel Holtmann <title>Exit causes and the effect of the <varname>Restart=</varname> settings on them</title>
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann <para>As exceptions to the setting
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann above the service will not be
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann restarted if the exit code or signal
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann is specified in
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann <varname>RestartPreventExitStatus=</varname>
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann (see below). Also, the services will
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann always be restarted if the exit code
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann or signal is specified in
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann (see below).</para>
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann <para>Setting this to
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann recommended choice for long-running
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann services, in order to increase
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann reliability by attempting automatic
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann recovery from errors. For services
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann that shall be able to terminate on
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann their own choice (and avoid
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann immediate restarting),
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann alternative choice.</para>
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann </varlistentry>
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann <varlistentry>
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann <term><varname>SuccessExitStatus=</varname></term>
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann status definitions that when returned
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann by the main service process will be
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann considered successful termination, in
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann addition to the normal successful exit
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann code 0 and the signals <constant>SIGHUP</constant>, <constant>SIGINT</constant>,
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann <constant>SIGTERM</constant>, and <constant>SIGPIPE</constant>. Exit status
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann definitions can either be numeric exit
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann codes or termination signal names,
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann separated by spaces. For example:
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann <programlisting>SuccessExitStatus=1 2 8 SIGKILL</programlisting>
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann ensures that exit codes 1, 2, 8 and
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann the termination signal
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann considered clean service terminations.
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann <para>Note that if a process has a
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann signal handler installed and exits by
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann <citerefentry><refentrytitle>_exit</refentrytitle><manvolnum>2</manvolnum></citerefentry>
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann in response to a signal, the
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann information about the signal is lost.
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann Programs should instead perform cleanup and kill themselves with the same signal instead. See
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann <ulink url="http://www.cons.org/cracauer/sigint.html">Proper handling of SIGINT/SIGQUIT — How to be a proper program</ulink>.</para>
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann <para>This option may appear more than once,
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann in which case the list of successful
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann exit statuses is merged. If the empty
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann string is assigned to this option, the
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann list is reset, all prior assignments
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann of this option will have no
c6f3f5b4b3ec439ae911ca0644237d96fd31893eMarcel Holtmann </varlistentry>
0234c599218518b1eb478d64d9883ba46e4ce5d8Marcel Holtmann <varlistentry>
0234c599218518b1eb478d64d9883ba46e4ce5d8Marcel Holtmann <term><varname>RestartPreventExitStatus=</varname></term>
0234c599218518b1eb478d64d9883ba46e4ce5d8Marcel Holtmann status definitions that when returned
0234c599218518b1eb478d64d9883ba46e4ce5d8Marcel Holtmann by the main service process will
0234c599218518b1eb478d64d9883ba46e4ce5d8Marcel Holtmann prevent automatic service restarts,
0234c599218518b1eb478d64d9883ba46e4ce5d8Marcel Holtmann regardless of the restart setting
0234c599218518b1eb478d64d9883ba46e4ce5d8Marcel Holtmann configured with
0234c599218518b1eb478d64d9883ba46e4ce5d8Marcel Holtmann status definitions can either be
0234c599218518b1eb478d64d9883ba46e4ce5d8Marcel Holtmann numeric exit codes or termination
0234c599218518b1eb478d64d9883ba46e4ce5d8Marcel Holtmann signal names, and are separated by
0234c599218518b1eb478d64d9883ba46e4ce5d8Marcel Holtmann spaces. Defaults to the empty list, so
0234c599218518b1eb478d64d9883ba46e4ce5d8Marcel Holtmann that, by default, no exit status is
0234c599218518b1eb478d64d9883ba46e4ce5d8Marcel Holtmann excluded from the configured restart
0234c599218518b1eb478d64d9883ba46e4ce5d8Marcel Holtmann logic. For example:
0234c599218518b1eb478d64d9883ba46e4ce5d8Marcel Holtmann <programlisting>RestartPreventExitStatus=1 6 SIGABRT</programlisting> ensures that exit
c4a3a17ee919e8b1197328394709edfe36d8b710Marcel Holtmann codes 1 and 6 and the termination
c4a3a17ee919e8b1197328394709edfe36d8b710Marcel Holtmann not result in automatic service
c4a3a17ee919e8b1197328394709edfe36d8b710Marcel Holtmann restarting. This
c4a3a17ee919e8b1197328394709edfe36d8b710Marcel Holtmann option may appear more than once, in
c4a3a17ee919e8b1197328394709edfe36d8b710Marcel Holtmann which case the list of restart-preventing
c4a3a17ee919e8b1197328394709edfe36d8b710Marcel Holtmann statuses is merged. If the empty
c4a3a17ee919e8b1197328394709edfe36d8b710Marcel Holtmann string is assigned to this option, the
c4a3a17ee919e8b1197328394709edfe36d8b710Marcel Holtmann list is reset and all prior assignments
c4a3a17ee919e8b1197328394709edfe36d8b710Marcel Holtmann of this option will have no
c4a3a17ee919e8b1197328394709edfe36d8b710Marcel Holtmann </varlistentry>
43d9c2b5848b1363b659c38443c1c94db57415fdMarcel Holtmann <varlistentry>
43d9c2b5848b1363b659c38443c1c94db57415fdMarcel Holtmann <term><varname>RestartForceExitStatus=</varname></term>
43d9c2b5848b1363b659c38443c1c94db57415fdMarcel Holtmann status definitions that when returned
43d9c2b5848b1363b659c38443c1c94db57415fdMarcel Holtmann by the main service process will force
43d9c2b5848b1363b659c38443c1c94db57415fdMarcel Holtmann automatic service restarts, regardless
43d9c2b5848b1363b659c38443c1c94db57415fdMarcel Holtmann of the restart setting configured with
43d9c2b5848b1363b659c38443c1c94db57415fdMarcel Holtmann argument format is similar to
43d9c2b5848b1363b659c38443c1c94db57415fdMarcel Holtmann <varname>RestartPreventExitStatus=</varname>.</para></listitem>
43d9c2b5848b1363b659c38443c1c94db57415fdMarcel Holtmann </varlistentry>
43d9c2b5848b1363b659c38443c1c94db57415fdMarcel Holtmann <varlistentry>
43d9c2b5848b1363b659c38443c1c94db57415fdMarcel Holtmann <term><varname>PermissionsStartOnly=</varname></term>
43d9c2b5848b1363b659c38443c1c94db57415fdMarcel Holtmann argument. If true, the permission-related
43d9c2b5848b1363b659c38443c1c94db57415fdMarcel Holtmann execution options, as
4b28cdeb2332cfbd3f5172b43a2f5f534b7e6e57Marcel Holtmann configured with
4b28cdeb2332cfbd3f5172b43a2f5f534b7e6e57Marcel Holtmann <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>
4b28cdeb2332cfbd3f5172b43a2f5f534b7e6e57Marcel Holtmann for more information), are only applied
4b28cdeb2332cfbd3f5172b43a2f5f534b7e6e57Marcel Holtmann to the process started with
4b28cdeb2332cfbd3f5172b43a2f5f534b7e6e57Marcel Holtmann to the various other
4b28cdeb2332cfbd3f5172b43a2f5f534b7e6e57Marcel Holtmann commands. If false, the setting is
4b28cdeb2332cfbd3f5172b43a2f5f534b7e6e57Marcel Holtmann applied to all configured commands the
4b28cdeb2332cfbd3f5172b43a2f5f534b7e6e57Marcel Holtmann same way. Defaults to
4b28cdeb2332cfbd3f5172b43a2f5f534b7e6e57Marcel Holtmann </varlistentry>
4b28cdeb2332cfbd3f5172b43a2f5f534b7e6e57Marcel Holtmann <varlistentry>
4b28cdeb2332cfbd3f5172b43a2f5f534b7e6e57Marcel Holtmann <term><varname>RootDirectoryStartOnly=</varname></term>
4b28cdeb2332cfbd3f5172b43a2f5f534b7e6e57Marcel Holtmann argument. If true, the root directory,
4b28cdeb2332cfbd3f5172b43a2f5f534b7e6e57Marcel Holtmann as configured with the
4b28cdeb2332cfbd3f5172b43a2f5f534b7e6e57Marcel Holtmann <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>
4b28cdeb2332cfbd3f5172b43a2f5f534b7e6e57Marcel Holtmann for more information), is only applied
4b28cdeb2332cfbd3f5172b43a2f5f534b7e6e57Marcel Holtmann to the process started with
e525326bd07ebf3cabcfd730bc479166723f2d44Marcel Holtmann to the various other
e525326bd07ebf3cabcfd730bc479166723f2d44Marcel Holtmann commands. If false, the setting is
e525326bd07ebf3cabcfd730bc479166723f2d44Marcel Holtmann applied to all configured commands the
e525326bd07ebf3cabcfd730bc479166723f2d44Marcel Holtmann same way. Defaults to
f401e2b24ba17452f9655993a6dedefdffe06d23Marcel Holtmann </varlistentry>
f401e2b24ba17452f9655993a6dedefdffe06d23Marcel Holtmann <varlistentry>
f401e2b24ba17452f9655993a6dedefdffe06d23Marcel Holtmann <term><varname>NonBlocking=</varname></term>
f401e2b24ba17452f9655993a6dedefdffe06d23Marcel Holtmann for all file descriptors passed via
f401e2b24ba17452f9655993a6dedefdffe06d23Marcel Holtmann socket-based activation. If true, all
f401e2b24ba17452f9655993a6dedefdffe06d23Marcel Holtmann file descriptors >= 3 (i.e. all except
f401e2b24ba17452f9655993a6dedefdffe06d23Marcel Holtmann stdin, stdout, and stderr) will have
f89b42ec0fd51feab5566d6bdbacee101023c037Marcel Holtmann set and hence are in
f89b42ec0fd51feab5566d6bdbacee101023c037Marcel Holtmann non-blocking mode. This option is only
f89b42ec0fd51feab5566d6bdbacee101023c037Marcel Holtmann useful in conjunction with a socket
f89b42ec0fd51feab5566d6bdbacee101023c037Marcel Holtmann unit, as described in
f89b42ec0fd51feab5566d6bdbacee101023c037Marcel Holtmann <citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>. Defaults
f89b42ec0fd51feab5566d6bdbacee101023c037Marcel Holtmann </varlistentry>
f89b42ec0fd51feab5566d6bdbacee101023c037Marcel Holtmann <varlistentry>
f89b42ec0fd51feab5566d6bdbacee101023c037Marcel Holtmann <term><varname>NotifyAccess=</varname></term>
f89b42ec0fd51feab5566d6bdbacee101023c037Marcel Holtmann service status notification socket, as
f89b42ec0fd51feab5566d6bdbacee101023c037Marcel Holtmann accessible via the
f89b42ec0fd51feab5566d6bdbacee101023c037Marcel Holtmann <citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry>
f89b42ec0fd51feab5566d6bdbacee101023c037Marcel Holtmann call. Takes one of
shutdown procedure (i.e. equivalent to
<citerefentry><refentrytitle>sd_pid_notify_with_fds</refentrytitle><manvolnum>3</manvolnum></citerefentry>'s
losing state. Defaults to 0, i.e. no
(i.e. the program to execute) may not include
strings. Note that the first argument (i.e. the
<citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry>