]> git.ipfire.org Git - thirdparty/util-linux.git/blame - misc-utils/kill.1
Manual pages: kill.1: various language, spelling, and formatting fixes
[thirdparty/util-linux.git] / misc-utils / kill.1
CommitLineData
6dbe3af9
KZ
1.\" Copyright 1994 Salvatore Valente (svalente@mit.edu)
2.\" Copyright 1992 Rickard E. Faith (faith@cs.unc.edu)
3.\" May be distributed under the GNU General Public License
6e6b9a1d 4.TH KILL 1 "November 2019" "util-linux" "User Commands"
6dbe3af9
KZ
5.SH NAME
6kill \- terminate a process
7.SH SYNOPSIS
b0315e1f 8.B kill
83098262 9.RB [ \- \fIsignal\fR| \-s
1c4c6024 10.IR signal | \fB\-p\fP ]
a1504d8b 11.RB [ \-q
83098262 12.IR value ]
821ac2c7 13.RB [ \-a ]
6e6b9a1d 14\fR[\fB\-\-timeout \fImilliseconds signal\fR]
b0315e1f 15.RB [ \-\- ]
83098262 16.IR pid | name ...
6dbe3af9 17.br
83098262
BS
18.B kill \-l
19.RI [ number ]
20.RB "| " \-L
6dbe3af9 21.SH DESCRIPTION
c07ebfa1 22The command
6dbe3af9 23.B kill
83098262 24sends the specified \fIsignal\fR to the specified processes or process groups.
3d463c67
MK
25.PP
26If no signal is specified, the TERM signal is sent.
27The default action for this signal is to terminate the process.
28This signal should be used in preference to the
29KILL signal (number 9), since a process may install a handler for the
30TERM signal in order to perform clean-up steps before terminating in
31an orderly fashion.
32If a process does not terminate after a TERM signal has been sent,
33then the KILL signal may be used; be aware that the latter signal
34cannot be caught, and so does not give the target process the opportunity
8419465d 35to perform any clean-up before terminating.
c07ebfa1 36.PP
226c38d4
MK
37Most modern shells have a builtin
38.B kill
39command, with a usage rather similar to
83098262
BS
40that of the command described here. The
41.BR \-\-all ,
42.BR \-\-pid ", and"
0bb7e904 43.B \-\-queue
83098262 44options, and the possibility to specify processes by command name, are local extensions.
bd0fb63d 45.PP
83098262
BS
46If \fIsignal\fR is 0, then no actual signal is sent, but error checking is still performed.
47
48.SH ARGUMENTS
2085ba6c 49The list of processes to be signaled can be a mixture of names and PIDs.
6dbe3af9 50.TP
83098262
BS
51.I pid
52Each
6dbe3af9 53.I pid
226c38d4 54can be expressed in one of the following ways:
c07ebfa1
KZ
55.RS
56.TP
fd6b7a7f
KZ
57.I n
58where
59.I n
2085ba6c 60is larger than 0. The process with PID
fd6b7a7f 61.I n
83098262 62is signaled.
c07ebfa1
KZ
63.TP
64.B 0
65All processes in the current process group are signaled.
66.TP
1c4c6024 67.B \-1
2085ba6c 68All processes with a PID larger than 1 are signaled.
c07ebfa1 69.TP
1c4c6024 70.BI \- n
b0315e1f
PB
71where
72.I n
9e068ce0 73is larger than 1. All processes in process group
fd6b7a7f 74.I n
1c4c6024 75are signaled. When an argument of the form '\-n' is given, and it is meant to
83098262 76denote a process group, either a signal must be specified first, or the
1c4c6024 77argument must be preceded by a '\-\-' option, otherwise it will be taken as the
9e068ce0 78signal to send.
10ab72e7 79.RE
c07ebfa1 80.TP
10ab72e7 81.I name
83098262
BS
82All processes invoked using this \fIname\fR will be signaled.
83
84.SH OPTIONS
6dbe3af9 85.TP
9e068ce0 86\fB\-s\fR, \fB\-\-signal\fR \fIsignal\fR
83098262 87The signal to send. It may be given as a name or a number.
6dbe3af9 88.TP
83098262
BS
89\fB\-l\fR, \fB\-\-list\fR [\fInumber\fR]
90Print a list of signal names, or convert the given signal number to a name.
91The signals can be found in
226c38d4 92.IR /usr/\:include/\:linux/\:signal.h .
c07ebfa1 93.TP
fda84b66 94\fB\-L\fR, \fB\-\-table\fR
83098262 95Similar to \fB\-l\fR, but it will print signal names and their corresponding
fda84b66
SK
96numbers.
97.TP
9e068ce0 98\fB\-a\fR, \fB\-\-all\fR
2085ba6c 99Do not restrict the command-name-to-PID conversion to processes with the same
a72fa61a 100UID as the present process.
c07ebfa1 101.TP
9e068ce0 102\fB\-p\fR, \fB\-\-pid\fR
2085ba6c 103Only print the process ID (PID) of the named processes, do not send any
9e068ce0 104signals.
a1504d8b 105.TP
1c23b1c5 106\fB\-\-verbose\fR
226c38d4
MK
107Print PID(s) that will be signaled with
108.B kill
109along with the signal.
1c23b1c5 110.TP
83098262 111\fB\-q\fR, \fB\-\-queue\fR \fIvalue\fR
226c38d4 112Send the signal using
b79cc53b 113.BR sigqueue (3)
a1504d8b 114rather than
83098262
BS
115.BR kill (2).
116The
117.I value
118argument is an integer that is sent along with the signal. If the
d9818c9b
MK
119receiving process has installed a handler for this signal using the
120.B SA_SIGINFO
9e068ce0 121flag to
a1504d8b 122.BR sigaction (2),
d9818c9b
MK
123then it can obtain this data via the
124.I si_sigval
125field of the
126.I siginfo_t
127structure.
6e6b9a1d
SK
128.TP
129\fB\-\-timeout\fR \fImilliseconds signal\fR
130Send a signal defined the usual way to a process.
131.B \-\-timeout
132will make
133.B kill
134to wait for a period defined in
135.I milliseconds
136before sending follow-up
137.I signal
1395236a 138to process.
226c38d4 139This feature is implemented by PID file-descriptor and guarantees that
1395236a
KZ
140follow-up signals are sent to the same process or not sent if the process no
141more exist. Note that the operating system may re-use PIDs and implement the
142same feature in a shell by kill and sleep commands sequence may introduce a
143race. This option can be specified more than once than signals are sent
144sequentially in defined timeouts. The
6e6b9a1d
SK
145.B \-\-timeout
146option can be combined with
147.B \-\-queue
148option.
149.IP
1395236a
KZ
150Example. Send signals QUIT, TERM and KILL in sequence and wait for 1000
151milliseconds between the signals
6e6b9a1d 152.br
1c4c6024 153kill \-\-verbose \-\-timeout 1000 TERM \-\-timeout 1000 KILL \-\-signal QUIT 12345
67e63c12
MK
154.SH EXIT STATUS
155.B kill
156has the following exit status values:
157.PP
158.RS
159.PD 0
160.TP
161.B 0
162success
163.TP
164.B 1
165failure
166.TP
167.B 64
168partial success (when more than one process specified)
169.PD
170.RE
741587f3 171.SH NOTES
f793f8bc 172Although it is possible to specify the TID (thread ID, see
741587f3 173.BR gettid (2))
f793f8bc
MK
174of one of the threads in a multithreaded process as the argument of
175.BR kill ,
176the signal is nevertheless directed to the process
177(i.e., the entire thread group).
178In other words, it is not possible to send a signal to an
179explicitly selected thread in a multithreaded process.
180The signal will be delivered to an arbitrarily selected thread
181in the target process that is not blocking the signal.
182For more details, see
183.BR signal (7)
184and the description of
0bb7e904 185.B CLONE_THREAD
f793f8bc
MK
186in
187.BR clone (2).
735fd5ed 188.P
226c38d4
MK
189Various shells provide a builtin
190.B kill
191command that is
735fd5ed
SK
192preferred in relation to the
193.BR kill (1)
226c38d4
MK
194executable described by this manual.
195The easiest way to ensure one is executing the command described in this page
196is to use the full path when calling the command, for example:
c5178f27 197.B "/bin/kill \-\-version"
6853d664 198.SH AUTHORS
9e068ce0
SK
199.MT svalente@mit.edu
200Salvatore Valente
6853d664
KZ
201.ME
202.br
203.MT kzak@redhat.com
204Karel Zak
205.ME
206.br
207.PP
208The original version was taken from BSD 4.4.
209
ade04bb8
MK
210.SH SEE ALSO
211.BR bash (1),
212.BR tcsh (1),
213.BR sigaction (2),
214.BR kill (2),
215.BR sigqueue (3),
216.BR signal (7)
217
86d62711 218.SH AVAILABILITY
601d12fb 219The kill command is part of the util-linux package and is available from
d673b74e 220.UR https://\:www.kernel.org\:/pub\:/linux\:/utils\:/util-linux/
9e068ce0
SK
221Linux Kernel Archive
222.UE .