chiark / gitweb /
core: introduce new KillMode=mixed which sends SIGTERM only to the main process,...
[elogind.git] / man / systemd.kill.xml
index 5ff8feee6345a814601700336057c706e6f7764a..a4009aa38a8f86c1bb1a9726c17cd4f43320547c 100644 (file)
 
         <refnamediv>
                 <refname>systemd.kill</refname>
 
         <refnamediv>
                 <refname>systemd.kill</refname>
-                <refpurpose>Kill environment configuration</refpurpose>
+                <refpurpose>Process killing procedure
+                configuration</refpurpose>
         </refnamediv>
 
         <refsynopsisdiv>
         </refnamediv>
 
         <refsynopsisdiv>
-                <para><filename>systemd.service</filename>,
-                <filename>systemd.socket</filename>,
-                <filename>systemd.mount</filename>,
-                <filename>systemd.swap</filename></para>
+                <para><filename><replaceable>service</replaceable>.service</filename>,
+                <filename><replaceable>socket</replaceable>.socket</filename>,
+                <filename><replaceable>mount</replaceable>.mount</filename>,
+                <filename><replaceable>swap</replaceable>.swap</filename>,
+                <filename><replaceable>scope</replaceable>.scope</filename></para>
         </refsynopsisdiv>
 
         <refsect1>
                 <title>Description</title>
 
                 <para>Unit configuration files for services, sockets,
         </refsynopsisdiv>
 
         <refsect1>
                 <title>Description</title>
 
                 <para>Unit configuration files for services, sockets,
-                mount points and swap devices share a subset of
-                configuration options which define the process killing
-                parameters of spawned processes.</para>
+                mount points, swap devices and scopes share a subset
+                of configuration options which define the
+                killing procedure of processes belonging to the unit.</para>
 
                 <para>This man page lists the configuration options
 
                 <para>This man page lists the configuration options
-                shared by these four unit types. See
+                shared by these five unit types. See
                 <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
                 <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
-                for the common options of all unit configuration
-                files, and
+                for the common options shared by all unit
+                configuration files, and
                 <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
                 <citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
                 <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
                 <citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
-                <citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>
-                and
+                <citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
                 <citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>
                 <citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>
-                for more information on the specific unit
-                configuration files. The execution specific
+                and
+                <citerefentry><refentrytitle>systemd.scope</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+                for more information on the configuration file options
+                specific to each unit type.</para>
+
+                <para>The kill procedure
                 configuration options are configured in the [Service],
                 configuration options are configured in the [Service],
-                [Socket], [Mount], or [Swap] section, depending on the unit
-                type.</para>
+                [Socket], [Mount] or [Swap] section, depending on the
+                unit type.</para>
         </refsect1>
 
         <refsect1>
         </refsect1>
 
         <refsect1>
                         <varlistentry>
                                 <term><varname>KillMode=</varname></term>
                                 <listitem><para>Specifies how
                         <varlistentry>
                                 <term><varname>KillMode=</varname></term>
                                 <listitem><para>Specifies how
-                                processes of this service shall be
+                                processes of this unit shall be
                                 killed. One of
                                 <option>control-group</option>,
                                 <option>process</option>,
                                 killed. One of
                                 <option>control-group</option>,
                                 <option>process</option>,
+                                <option>mixed</option>,
                                 <option>none</option>.</para>
 
                                 <para>If set to
                                 <option>none</option>.</para>
 
                                 <para>If set to
-                                <option>control-group</option> all
+                                <option>control-group</option>, all
                                 remaining processes in the control
                                 remaining processes in the control
-                                group of this unit will be terminated
-                                on unit stop (for services: after the
+                                group of this unit will be killed on
+                                unit stop (for services: after the
                                 stop command is executed, as
                                 configured with
                                 <varname>ExecStop=</varname>). If set
                                 stop command is executed, as
                                 configured with
                                 <varname>ExecStop=</varname>). If set
-                                to <option>process</option> only the
+                                to <option>process</option>, only the
                                 main process itself is killed. If set
                                 main process itself is killed. If set
-                                to <option>none</option> no process is
+                                to <option>mixed</option> the
+                                <constant>SIGTERM</constant> signal
+                                (see below) is sent to the main
+                                process while the subsequent
+                                <constant>SIGKILL</constant> signal
+                                (see below) is sent to all remaining
+                                processes of the unit's control
+                                group. If set to
+                                <option>none</option>, no process is
                                 killed. In this case only the stop
                                 killed. In this case only the stop
-                                command will be executed on unit
-                                stop, but no process be killed
+                                command will be executed on unit stop,
+                                but no process be killed
                                 otherwise. Processes remaining alive
                                 after stop are left in their control
                                 group and the control group continues
                                 to exist after stop unless it is
                                 otherwise. Processes remaining alive
                                 after stop are left in their control
                                 group and the control group continues
                                 to exist after stop unless it is
-                                empty. Defaults to
-                                <option>control-group</option>.</para>
+                                empty.</para>
 
                                 <para>Processes will first be
 
                                 <para>Processes will first be
-                                terminated via SIGTERM (unless the
-                                signal to send is changed via
-                                <varname>KillSignal=</varname>). If
-                                then after a delay (configured via the
-                                <varname>TimeoutSec=</varname> option)
+                                terminated via
+                                <constant>SIGTERM</constant> (unless
+                                the signal to send is changed via
+                                <varname>KillSignal=</varname>). Optionally,
+                                this is immediately followed by a
+                                <constant>SIGHUP</constant> (if
+                                enabled with
+                                <varname>SendSIGHUP=</varname>). If
+                                then, after a delay (configured via the
+                                <varname>TimeoutStopSec=</varname> option),
                                 processes still remain, the
                                 termination request is repeated with
                                 processes still remain, the
                                 termination request is repeated with
-                                the SIGKILL signal (unless this is
-                                disabled via the
-                                <varname>SendSIGKILL=</varname>
+                                the <constant>SIGKILL</constant>
+                                signal (unless this is disabled via
+                                the <varname>SendSIGKILL=</varname>
                                 option). See
                                 <citerefentry><refentrytitle>kill</refentrytitle><manvolnum>2</manvolnum></citerefentry>
                                 for more
                                 option). See
                                 <citerefentry><refentrytitle>kill</refentrytitle><manvolnum>2</manvolnum></citerefentry>
                                 for more
-                                information.</para></listitem>
+                                information.</para>
+
+                                <para>Defaults to
+                                <option>control-group</option>.</para></listitem>
                         </varlistentry>
 
                         <varlistentry>
                                 <term><varname>KillSignal=</varname></term>
                                 <listitem><para>Specifies which signal
                         </varlistentry>
 
                         <varlistentry>
                                 <term><varname>KillSignal=</varname></term>
                                 <listitem><para>Specifies which signal
-                                to use when killing a
-                                service. Defaults to SIGTERM.
+                                to use when killing a service. This
+                                controls the signal that is sent as
+                                first step of shutting down a unit
+                                (see above), and is usually followed
+                                by <constant>SIGKILL</constant> (see
+                                above and below). For a list of valid
+                                signals, see
+                                <citerefentry><refentrytitle>signal</refentrytitle><manvolnum>7</manvolnum></citerefentry>. Defaults
+                                to <constant>SIGTERM</constant>.
+                                </para></listitem>
+                        </varlistentry>
+
+                        <varlistentry>
+                                <term><varname>SendSIGHUP=</varname></term>
+                                <listitem><para>Specifies whether to
+                                send <constant>SIGHUP</constant> to
+                                remaining processes immediately after
+                                sending the signal configured with
+                                <varname>KillSignal=</varname>. This
+                                is useful to indicate to shells and
+                                shell-like programs that their
+                                connection has been severed. Takes a
+                                boolean value. Defaults to "no".
                                 </para></listitem>
                         </varlistentry>
 
                         <varlistentry>
                                 <term><varname>SendSIGKILL=</varname></term>
                                 <listitem><para>Specifies whether to
                                 </para></listitem>
                         </varlistentry>
 
                         <varlistentry>
                                 <term><varname>SendSIGKILL=</varname></term>
                                 <listitem><para>Specifies whether to
-                                send SIGKILL to remaining processes
+                                send <constant>SIGKILL</constant> to remaining processes
                                 after a timeout, if the normal
                                 shutdown procedure left processes of
                                 the service around. Takes a boolean
                                 value. Defaults to "yes".
                                 </para></listitem>
                         </varlistentry>
                                 after a timeout, if the normal
                                 shutdown procedure left processes of
                                 the service around. Takes a boolean
                                 value. Defaults to "yes".
                                 </para></listitem>
                         </varlistentry>
+
                 </variablelist>
         </refsect1>
 
                 </variablelist>
         </refsect1>
 
                           <citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
                           <citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
                           <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
                           <citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
                           <citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
                           <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
-                          <citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry>
+                          <citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
+                          <citerefentry><refentrytitle>kill</refentrytitle><manvolnum>2</manvolnum></citerefentry>,
+                          <citerefentry><refentrytitle>signal</refentrytitle><manvolnum>7</manvolnum></citerefentry>
                   </para>
         </refsect1>
 
                   </para>
         </refsect1>