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