man: clarify that exit status name mappings are unaffected by SuccessExitStatus=

Fixes: #15757

(Note there's quite some confusion regarding "exit status" vs. "exit
code" in the docs here. We should clean this up fully one day. This
change tries to fix some occasions of the wrong use, but not all.)
This commit is contained in:
Lennart Poettering 2020-05-11 10:36:28 +02:00 committed by Zbigniew Jędrzejewski-Szmek
parent 13c829c1bd
commit 1e0d5eebf1

View file

@ -845,35 +845,41 @@
<varlistentry> <varlistentry>
<term><varname>SuccessExitStatus=</varname></term> <term><varname>SuccessExitStatus=</varname></term>
<listitem><para>Takes a list of exit status definitions that, when returned by the main service <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 process, will be considered successful termination, in addition to the normal successful exit status
and the signals <constant>SIGHUP</constant>, <constant>SIGINT</constant>, 0 and the signals <constant>SIGHUP</constant>, <constant>SIGINT</constant>,
<constant>SIGTERM</constant>, and <constant>SIGPIPE</constant>. Exit status definitions can be <constant>SIGTERM</constant>, and <constant>SIGPIPE</constant>. Exit status definitions can be
numeric exit codes, termination code names, or termination signal names, separated by spaces. See the numeric termination statuses, termination status names, or termination signal names, separated by
Process Exit Codes section in spaces. See the Process Exit Codes section in
<citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry> for <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry> for
a list of termination codes names (for this setting only the part without the a list of termination status names (for this setting only the part without the
<literal>EXIT_</literal> or <literal>EX_</literal> prefix should be used). See <literal>EXIT_</literal> or <literal>EX_</literal> prefix should be used). See <citerefentry
<citerefentry project='man-pages'><refentrytitle>signal</refentrytitle><manvolnum>7</manvolnum></citerefentry> for project='man-pages'><refentrytitle>signal</refentrytitle><manvolnum>7</manvolnum></citerefentry> for
a list of signal names.</para> a list of signal names.</para>
<para>This option may appear more than once, in which case the <para>Note that this setting does not change the the mapping between numeric exit statuses and their
list of successful exit statuses is merged. If the empty names, i.e. regardless how this setting is used 0 will still be mapped to <literal>SUCCESS</literal>
string is assigned to this option, the list is reset, all (and thus typically shown as <literal>0/SUCCESS</literal> in tool outputs) and 1 to
prior assignments of this option will have no <literal>FAILURE</literal> (and thus typically shown as <literal>1/FAILURE</literal>), and so on. It
effect.</para> only controls what happens as effect of these exit statuses, and how it propagates to the state of
the service as a whole.</para>
<para>This option may appear more than once, in which case the list of successful exit statuses is
merged. If the empty string is assigned to this option, the list is reset, all prior assignments of
this option will have no effect.</para>
<example> <example>
<title>A service with with the <varname>SuccessExitStatus=</varname> setting</title> <title>A service with with the <varname>SuccessExitStatus=</varname> setting</title>
<programlisting>SuccessExitStatus=TEMPFAIL 250 SIGUSR1</programlisting> <programlisting>SuccessExitStatus=TEMPFAIL 250 SIGUSR1</programlisting>
<para>Exit codes 75 (<constant>TEMPFAIL</constant>), 250, and the termination signal <para>Exit status 75 (<constant>TEMPFAIL</constant>), 250, and the termination signal
<constant>SIGKILL</constant> are considered clean service terminations.</para> <constant>SIGKILL</constant> are considered clean service terminations.</para>
</example> </example>
<para>Note: <command>systemd-analyze exit-status</command> may be used to list exit <para>Note: <command>systemd-analyze exit-status</command> may be used to list exit statuses and
codes and translate between numerical code values and names.</para></listitem> translate between numerical status values and names.</para></listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>