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