summaryrefslogtreecommitdiffstats
path: root/misc-utils/kill.1
diff options
context:
space:
mode:
Diffstat (limited to 'misc-utils/kill.1')
-rw-r--r--misc-utils/kill.1240
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 .