KILL(1) manual page
Table of Contents
kill - terminate a process
kill [-signal|-s signal|-p] [-q value]
[-a] [--] pid|name...
kill -l [number] | -L
The command kill sends the specified signal
to the specified processes or process groups. If no signal is specified,
the TERM signal is sent. This TERM signal will kill processes that do not
catch it; for other processes it may be necessary to use the KILL signal
(number 9), since this signal cannot be caught.
Most modern shells have
a builtin kill function, with a usage rather similar to that of the command
described here. The --all, --pid, and --queue options, and the possibility to
specify processes by command name, are local extensions.
If signal is 0,
then no actual signal is sent, but error checking is still performed.
The
list of processes to be signaled can be a mixture of names and pids.
- pid
- Each pid can be one of four things:
- n
- where n is larger than 0. The process
with pid n is signaled.
- All processes in the current process group are signaled.
- -1
- All processes with a pid larger than 1 are signaled.
- -n
- where n is larger
than 1. All processes in process group 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.
- name
- All processes
invoked using this name will be signaled.
- -s, --signal signal
- The signal
to send. It may be given as a name or a number.
- -l, --list [number]
- Print a
list of signal names, or convert the given signal number to a name. The
signals can be found in /usr/:include/:linux/:signal.h
- -L, --table
- Similar
to -l, but it will print signal names and their corresponding numbers.
- -a,
--all
- Do not restrict the commandname-to-pid conversion to processes with the
same uid as the present process.
- -p, --pid
- Only print the process id (pid)
of the named processes, do not send any signals.
- The --pid option is automatically
enabled when the kill command
- is invoked with the name of pid. This functionality
is deprecated, and will be removed in March 2016.
- -q, --queue value
- Use sigqueue(2)
rather than kill(2)
. The 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 SA_SIGINFO flag to sigaction(2)
, then it can obtain this
data via the si_sigval field of the siginfo_t structure.
It is not
possible to send a signal to an explicitly selected thread in a multithreaded
process using the kill(2)
syscall. If kill(2)
is used to send a signal
to a thread group, then the kernel selects an arbitrary member of the thread
group that has not blocked the signal. For more details see clone(2)
, the
CLONE_THREAD description.
The command kill(1)
as well as syscall kill(2)
accept a TID (thread ID, see gettid(2)
) as an argument. In this case the
kill behavior is not changed and the signal is also delivered to the thread
group rather than to the specified thread.
kill has the following
return codes:
- success
- failure
- partial success (when more than one process
specified)
bash(1)
, tcsh(1)
, kill(2)
, sigvec(2)
, signal(7)
Salvatore Valente
Karel Zak
The original version was taken from BSD 4.4.
The kill command
is part of the util-linux package and is available from Linux Kernel Archive
Table of Contents