1<?xml version='1.0'?> <!--*-nxml-*-->
2<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
4<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
5
6<refentry id="systemd.kill">
7  <refentryinfo>
8    <title>systemd.kill</title>
9    <productname>systemd</productname>
10  </refentryinfo>
11
12  <refmeta>
13    <refentrytitle>systemd.kill</refentrytitle>
14    <manvolnum>5</manvolnum>
15  </refmeta>
16
17  <refnamediv>
18    <refname>systemd.kill</refname>
19    <refpurpose>Process killing procedure
20    configuration</refpurpose>
21  </refnamediv>
22
23  <refsynopsisdiv>
24    <para><filename><replaceable>service</replaceable>.service</filename>,
25    <filename><replaceable>socket</replaceable>.socket</filename>,
26    <filename><replaceable>mount</replaceable>.mount</filename>,
27    <filename><replaceable>swap</replaceable>.swap</filename>,
28    <filename><replaceable>scope</replaceable>.scope</filename></para>
29  </refsynopsisdiv>
30
31  <refsect1>
32    <title>Description</title>
33
34    <para>Unit configuration files for services, sockets, mount
35    points, swap devices and scopes share a subset of configuration
36    options which define the killing procedure of processes belonging
37    to the unit.</para>
38
39    <para>This man page lists the configuration options shared by
40    these five unit types. See
41    <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
42    for the common options shared by all unit configuration files, and
43    <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
44    <citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
45    <citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
46    <citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>
47    and
48    <citerefentry><refentrytitle>systemd.scope</refentrytitle><manvolnum>5</manvolnum></citerefentry>
49    for more information on the configuration file options specific to
50    each unit type.</para>
51
52    <para>The kill procedure configuration options are configured in
53    the [Service], [Socket], [Mount] or [Swap] section, depending on
54    the unit type.</para>
55  </refsect1>
56
57  <refsect1>
58    <title>Options</title>
59
60    <variablelist class='unit-directives'>
61
62      <varlistentry>
63        <term><varname>KillMode=</varname></term>
64        <listitem><para>Specifies how processes of this unit shall be killed. One of
65        <option>control-group</option>, <option>mixed</option>, <option>process</option>,
66        <option>none</option>.</para>
67
68        <para>If set to <option>control-group</option>, all remaining processes in the control group of this
69        unit will be killed on unit stop (for services: after the stop command is executed, as configured
70        with <varname>ExecStop=</varname>). If set to <option>mixed</option>, the
71        <constant>SIGTERM</constant> signal (see below) is sent to the main process while the subsequent
72        <constant>SIGKILL</constant> signal (see below) is sent to all remaining processes of the unit's
73        control group. If set to <option>process</option>, only the main process itself is killed (not
74        recommended!). If set to <option>none</option>, no process is killed (strongly recommended
75        against!). In this case, only the stop command will be executed on unit stop, but no process will be
76        killed otherwise.  Processes remaining alive after stop are left in their control group and the
77        control group continues to exist after stop unless empty.</para>
78
79        <para>Note that it is not recommended to set <varname>KillMode=</varname> to
80        <constant>process</constant> or even <constant>none</constant>, as this allows processes to escape
81        the service manager's lifecycle and resource management, and to remain running even while their
82        service is considered stopped and is assumed to not consume any resources.</para>
83
84        <para>Processes will first be terminated via <constant>SIGTERM</constant> (unless the signal to send
85        is changed via <varname>KillSignal=</varname> or <varname>RestartKillSignal=</varname>). Optionally,
86        this is immediately followed by a <constant>SIGHUP</constant> (if enabled with
87        <varname>SendSIGHUP=</varname>). If processes still remain after the main process of a unit has
88        exited or the delay configured via the <varname>TimeoutStopSec=</varname> has passed, the termination
89        request is repeated with the <constant>SIGKILL</constant> signal or the signal specified via
90        <varname>FinalKillSignal=</varname> (unless this is disabled via the <varname>SendSIGKILL=</varname>
91        option). See <citerefentry><refentrytitle>kill</refentrytitle><manvolnum>2</manvolnum></citerefentry>
92        for more information.</para>
93
94        <para>Defaults to <option>control-group</option>.</para></listitem>
95      </varlistentry>
96
97      <varlistentry>
98        <term><varname>KillSignal=</varname></term>
99        <listitem><para>Specifies which signal to use when stopping a service. This controls the signal that
100        is sent as first step of shutting down a unit (see above), and is usually followed by
101        <constant>SIGKILL</constant> (see above and below). For a list of valid signals, see
102        <citerefentry project='man-pages'><refentrytitle>signal</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
103        Defaults to <constant>SIGTERM</constant>.</para>
104
105        <para>Note that, right after sending the signal specified in this setting, systemd will always send
106        <constant>SIGCONT</constant>, to ensure that even suspended tasks can be terminated cleanly.</para>
107        </listitem>
108      </varlistentry>
109
110      <varlistentry>
111        <term><varname>RestartKillSignal=</varname></term>
112        <listitem><para>Specifies which signal to use when restarting a service. The same as
113        <varname>KillSignal=</varname> described above, with the exception that this setting is used in a
114        restart job. Not set by default, and the value of <varname>KillSignal=</varname> is used.</para>
115        </listitem>
116      </varlistentry>
117
118      <varlistentry>
119        <term><varname>SendSIGHUP=</varname></term>
120        <listitem><para>Specifies whether to send
121        <constant>SIGHUP</constant> to remaining processes immediately
122        after sending the signal configured with
123        <varname>KillSignal=</varname>. This is useful to indicate to
124        shells and shell-like programs that their connection has been
125        severed. Takes a boolean value. Defaults to "no".
126        </para></listitem>
127      </varlistentry>
128
129      <varlistentry>
130        <term><varname>SendSIGKILL=</varname></term>
131        <listitem><para>Specifies whether to send
132        <constant>SIGKILL</constant> (or the signal specified by
133        <varname>FinalKillSignal=</varname>) to remaining processes
134        after a timeout, if the normal shutdown procedure left
135        processes of the service around. When disabled, a
136        <varname>KillMode=</varname> of <constant>control-group</constant>
137        or <constant>mixed</constant> service will not restart if
138        processes from prior services exist within the control group.
139        Takes a boolean value. Defaults to "yes".
140        </para></listitem>
141      </varlistentry>
142
143      <varlistentry>
144        <term><varname>FinalKillSignal=</varname></term>
145        <listitem><para>Specifies which signal to send to remaining
146        processes after a timeout if <varname>SendSIGKILL=</varname>
147        is enabled. The signal configured here should be one that is
148        not typically caught and processed by services (<constant>SIGTERM</constant>
149        is not suitable). Developers can find it useful to use this to
150        generate a coredump to troubleshoot why a service did not
151        terminate upon receiving the initial <constant>SIGTERM</constant>
152        signal. This can be achieved by configuring <varname>LimitCORE=</varname>
153        and setting <varname>FinalKillSignal=</varname> to either
154        <constant>SIGQUIT</constant> or <constant>SIGABRT</constant>.
155        Defaults to <constant>SIGKILL</constant>.
156        </para></listitem>
157      </varlistentry>
158
159      <varlistentry>
160        <term><varname>WatchdogSignal=</varname></term>
161        <listitem><para>Specifies which signal to use to terminate the
162        service when the watchdog timeout expires (enabled through
163        <varname>WatchdogSec=</varname>). Defaults to <constant>SIGABRT</constant>.
164        </para></listitem>
165      </varlistentry>
166
167    </variablelist>
168  </refsect1>
169
170  <refsect1>
171      <title>See Also</title>
172      <para>
173        <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
174        <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
175        <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
176        <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
177        <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
178        <citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
179        <citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
180        <citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
181        <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
182        <citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
183        <citerefentry><refentrytitle>kill</refentrytitle><manvolnum>2</manvolnum></citerefentry>,
184        <citerefentry project='man-pages'><refentrytitle>signal</refentrytitle><manvolnum>7</manvolnum></citerefentry>
185      </para>
186  </refsect1>
187
188</refentry>
189