complete and all communication
channels set up. The child continues
to run as the main daemon
- process. This is the behaviour of
+ process. This is the behavior of
traditional UNIX daemons. If this
setting is used, it is recommended to
also use the
soon as the parent process
exits.</para>
- <para>Behaviour of
+ <para>Behavior of
<option>oneshot</option> is similar
to <option>simple</option>, however
it is expected that the process has to
is particularly useful for this type
of service.</para>
- <para>Behaviour of
+ <para>Behavior of
<option>dbus</option> is similar to
<option>simple</option>, however it is
expected that the daemon acquires a
<varname>BusName=</varname> is
specified.</para>
- <para>Behaviour of
+ <para>Behavior of
<option>notify</option> is similar to
<option>simple</option>, however it is
expected that the daemon sends a
not set, it will be implicitly set to
<option>main</option>.</para>
- <para>Behaviour of
+ <para>Behavior of
<option>idle</option> is very similar
to <option>simple</option>, however
actual execution of a the service
argument (i.e. the program to execute)
may not be a variable, and must be a
literal and absolute path
- name.</para></listitem>
+ name.</para>
+
+ <para>Note that this setting does not
+ directly support shell command
+ lines. If shell command lines are to
+ be used they need to be passed
+ explicitly to a shell implementation
+ of some kind. Example:
+ <literal>ExecStart=/bin/sh -c 'dmesg | tac'</literal></para>
+ </listitem>
</varlistentry>
<varlistentry>
</varlistentry>
<varlistentry>
- <term><varname>RestartPreventExitStatus=</varname></term>
- <listitem><para>Specify exit status list, which
- will prevent service from restart. Codes are
- separated by whitespace (e.g. "1 6 SIGKILL").</para></listitem>
+ <term><varname>SuccessExitStatus=</varname></term>
+ <listitem><para>Takes a list of exit
+ status definitions that when returned
+ by the main service process will be
+ considered successful termination, in
+ addition to the normal successful exit
+ code 0 and the signals SIGHUP, SIGINT,
+ SIGTERM and SIGPIPE. Exit status
+ definitions can either be numeric exit
+ codes or termination signal names, and
+ are separated by spaces. Example:
+ "<literal>SuccessExitStatus=1 2 8
+ SIGKILL</literal>", ensures that exit
+ codes 1, 2, 8 and the termination
+ signal SIGKILL are considered clean
+ service
+ terminations.</para></listitem>
</varlistentry>
<varlistentry>
- <term><varname>SuccessExitStatus=</varname></term>
- <listitem><para>Specify exit status list, which
- will be considered as successful exit. Codes are
- separated by whitespace (e.g. "1 6 SIGKILL").</para></listitem>
+ <term><varname>RestartPreventExitStatus=</varname></term>
+ <listitem><para>Takes a list of exit
+ status definitions that when returned
+ by the main service process will
+ prevent automatic service restarts
+ regardless of the restart setting
+ configured with
+ <varname>Restart=</varname>. Exit
+ status definitions can either be
+ numeric exit codes or termination
+ signal names, and are separated by
+ spaces. Defaults to the empty list, so
+ that by default no exit status is
+ excluded from the configured restart
+ logic. Example:
+ "<literal>RestartPreventExitStatus=1 6
+ SIGABRT</literal>", ensures that exit
+ codes 1 and 6 and the termination signal
+ SIGABRT will not result in automatic
+ service restarting.</para></listitem>
</varlistentry>
<varlistentry>