diff options
Diffstat (limited to 'misc-utils/kill.1')
-rw-r--r-- | misc-utils/kill.1 | 240 |
1 files changed, 240 insertions, 0 deletions
diff --git a/misc-utils/kill.1 b/misc-utils/kill.1 new file mode 100644 index 0000000..5e0ebaf --- /dev/null +++ b/misc-utils/kill.1 @@ -0,0 +1,240 @@ +.\" 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 "November 2019" "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 ] +\fR[\fB\-\-timeout \fImilliseconds signal\fR] +.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 +.B 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 expressed in one of the following ways: +.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 +.IR /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 +.B kill +along with the signal. +.TP +\fB\-q\fR, \fB\-\-queue\fR \fIvalue\fR +Send the signal using +.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. +.TP +\fB\-\-timeout\fR \fImilliseconds signal\fR +Send a signal defined in the usual way to a process, +followed by an additional signal after a specified delay. +The +.B \-\-timeout +option causes +.B kill +to wait for a period defined in +.I milliseconds +before sending a follow-up +.I signal +to the process. +This feature is implemented using the Linux kernel +PID file descriptor feature in order to guarantee that the follow-up signal +is sent to the same process or not sent if the process no longer exists. +.IP +Note that the operating system may re-use PIDs and implementing an +equivalent feature in a shell using +.B kill +and +.B sleep +would be subject to races whereby the follow-up signal might be sent +to a different process that used a recycled PID. +.IP +The +.B \-\-timeout +option can be specified multiple times: the signals are sent +sequentially with the specified timeouts. The +.B \-\-timeout +option can be combined with the +.B \-\-queue +option. +.IP +As an example, the following command sends +the signals QUIT, TERM and KILL in sequence and waits for 1000 +milliseconds between sending the signals: +.IP +.in +4n +.EX +kill \-\-verbose \-\-timeout 1000 TERM \-\-timeout 1000 KILL \e + \-\-signal QUIT 12345 +.EE +.in +.SH EXIT STATUS +.B kill +has the following exit status values: +.PP +.RS +.PD 0 +.TP +.B 0 +success +.TP +.B 1 +failure +.TP +.B 64 +partial success (when more than one process specified) +.PD +.RE +.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). +.P +Various shells provide a builtin +.B kill +command that is +preferred in relation to the +.BR kill (1) +executable described by this manual. +The easiest way to ensure one is executing the command described in this page +is to use the full path when calling the command, for example: +.B "/bin/kill \-\-version" +.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 SEE ALSO +.BR bash (1), +.BR tcsh (1), +.BR sigaction (2), +.BR kill (2), +.BR sigqueue (3), +.BR signal (7) + +.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 . |