| .\" Copyright 1994 Salvatore Valente (svalente@mit.edu) |
| .\" Copyright 1992 Rickard E. Faith (faith@cs.unc.edu) |
| .\" May be distributed under the GNU General Public License |
| .TH KILL 1 "July 2014" "util-linux" "User Commands" |
| .SH NAME |
| kill \- terminate a process |
| .SH SYNOPSIS |
| .B kill |
| .RB [ \- \fIsignal\fR| \-s |
| .IR signal | \fB-p\fP ] |
| .RB [ \-q |
| .IR value ] |
| .RB [ \-a ] |
| .RB [ \-\- ] |
| .IR pid | name ... |
| .br |
| .B kill \-l |
| .RI [ number ] |
| .RB "| " \-L |
| .SH DESCRIPTION |
| The command |
| .B kill |
| sends the specified \fIsignal\fR to the specified processes or process groups. |
| .PP |
| If no signal is specified, the TERM signal is sent. |
| The default action for this signal is to terminate the process. |
| This signal should be used in preference to the |
| KILL signal (number 9), since a process may install a handler for the |
| TERM signal in order to perform clean-up steps before terminating in |
| an orderly fashion. |
| If a process does not terminate after a TERM signal has been sent, |
| then the KILL signal may be used; be aware that the latter signal |
| cannot be caught, and so does not give the target process the opportunity |
| to perform any clean-up before terminating. |
| .PP |
| Most modern shells have a builtin kill command, with a usage rather similar to |
| that of the command described here. The |
| .BR \-\-all , |
| .BR \-\-pid ", and" |
| .B \-\-queue |
| options, and the possibility to specify processes by command name, are local extensions. |
| .PP |
| If \fIsignal\fR is 0, then no actual signal is sent, but error checking is still performed. |
| |
| .SH ARGUMENTS |
| The list of processes to be signaled can be a mixture of names and PIDs. |
| .TP |
| .I pid |
| Each |
| .I pid |
| can be one of four things: |
| .RS |
| .TP |
| .I n |
| where |
| .I n |
| is larger than 0. The process with PID |
| .I n |
| is signaled. |
| .TP |
| .B 0 |
| All processes in the current process group are signaled. |
| .TP |
| .B -1 |
| All processes with a PID larger than 1 are signaled. |
| .TP |
| .BI - n |
| where |
| .I n |
| is larger than 1. All processes in process group |
| .I n |
| are signaled. When an argument of the form '-n' is given, and it is meant to |
| denote a process group, either a signal must be specified first, or the |
| argument must be preceded by a '--' option, otherwise it will be taken as the |
| signal to send. |
| .RE |
| .TP |
| .I name |
| All processes invoked using this \fIname\fR will be signaled. |
| |
| .SH OPTIONS |
| .TP |
| \fB\-s\fR, \fB\-\-signal\fR \fIsignal\fR |
| The signal to send. It may be given as a name or a number. |
| .TP |
| \fB\-l\fR, \fB\-\-list\fR [\fInumber\fR] |
| Print a list of signal names, or convert the given signal number to a name. |
| The signals can be found in |
| .I /usr/\:include/\:linux/\:signal.h |
| .TP |
| \fB\-L\fR, \fB\-\-table\fR |
| Similar to \fB\-l\fR, but it will print signal names and their corresponding |
| numbers. |
| .TP |
| \fB\-a\fR, \fB\-\-all\fR |
| Do not restrict the command-name-to-PID conversion to processes with the same |
| UID as the present process. |
| .TP |
| \fB\-p\fR, \fB\-\-pid\fR |
| Only print the process ID (PID) of the named processes, do not send any |
| signals. |
| .TP |
| \fB\-\-verbose\fR |
| Print PID(s) that will be signaled with kill along with the signal. |
| .TP |
| \fB\-q\fR, \fB\-\-queue\fR \fIvalue\fR |
| Use |
| .BR sigqueue (3) |
| rather than |
| .BR kill (2). |
| The |
| .I value |
| argument is an integer that is sent along with the signal. If the |
| receiving process has installed a handler for this signal using the |
| .B SA_SIGINFO |
| flag to |
| .BR sigaction (2), |
| then it can obtain this data via the |
| .I si_sigval |
| field of the |
| .I siginfo_t |
| structure. |
| |
| .SH NOTES |
| Although it is possible to specify the TID (thread ID, see |
| .BR gettid (2)) |
| of one of the threads in a multithreaded process as the argument of |
| .BR kill , |
| the signal is nevertheless directed to the process |
| (i.e., the entire thread group). |
| In other words, it is not possible to send a signal to an |
| explicitly selected thread in a multithreaded process. |
| The signal will be delivered to an arbitrarily selected thread |
| in the target process that is not blocking the signal. |
| For more details, see |
| .BR signal (7) |
| and the description of |
| .B CLONE_THREAD |
| in |
| .BR clone (2). |
| |
| .SH RETURN CODES |
| .B kill |
| has the following return codes: |
| .TP |
| .B 0 |
| success |
| .TP |
| .B 1 |
| failure |
| .TP |
| .B 64 |
| partial success (when more than one process specified) |
| |
| .SH SEE ALSO |
| .BR bash (1), |
| .BR tcsh (1), |
| .BR sigaction (2), |
| .BR kill (2), |
| .BR sigqueue (3), |
| .BR signal (7) |
| |
| .SH AUTHORS |
| .MT svalente@mit.edu |
| Salvatore Valente |
| .ME |
| .br |
| .MT kzak@redhat.com |
| Karel Zak |
| .ME |
| .br |
| .PP |
| The original version was taken from BSD 4.4. |
| |
| .SH AVAILABILITY |
| The kill command is part of the util-linux package and is available from |
| .UR https://\:www.kernel.org\:/pub\:/linux\:/utils\:/util-linux/ |
| Linux Kernel Archive |
| .UE . |