KILL(1) | General Commands Manual | KILL(1)

# NAME

`kill` — terminate or signal a process

# SYNOPSIS

`kill` | [`-`signal_number | `-`signal_name | `-s` signal_name] pid ...

`kill` | `-l` [exit_status]

# DESCRIPTION

The `kill` utility sends a signal to the process(es) specified by the pid operand(s). If no signal is specified, the `TERM` signal is used.

Only the superuser may send signals to other users' processes.

The options are as follows:

`-l` [exit_status]
  Display the name of the signal corresponding to exit_status. exit_status may be the exit status of a command killed by a signal (see the special sh(1) parameter ‘?’) or a signal number.

  If no operand is given, display the names of all the signals.

`-`signal_number | `-`signal_name | `-s` signal_name
  A non-negative decimal integer or a symbolic name specifying the signal to be sent instead of the default `TERM`.

The following PIDs have special meanings:

-1
  If superuser, broadcast the signal to all processes; otherwise, broadcast to all processes belonging to the user.
0
  Send the signal to all processes whose group ID is equal to the process group ID of the sender, and for which the process has permission.
-pgid
  Send the signal to all processes within the specified process group.

Some of the more commonly used signals:

1 | `HUP` | (hang up)
2 | `INT` | (interrupt)
3 | `QUIT` | (quit)
6 | `ABRT` | (abort)
9 | `KILL` | (non-catchable, non-ignorable kill)
14 | `ALRM` | (alarm clock)
15 | `TERM` | (software termination signal)

For a complete list, consult the signal(3) manual page.

A signal number of 0 (`kill` `-0` pid) does not send a signal, but only checks the validity of a certain PID. It succeeds if pid exists or raises an error otherwise.

# EXIT STATUS

The `kill` utility exits 0 on success, and >0 if an error occurs.

# EXAMPLES

Forcibly terminate process ID 1234:

`$ kill -9 1234`

Send the init(8) process the hangup signal, instructing it to re-read ttys(5):

`# kill -HUP 1`

# SEE ALSO

csh(1), ksh(1), pkill(1), ps(1), kill(2), signal(3)

# STANDARDS

The `kill` utility is compliant with the IEEE Std 1003.1-2008 (“POSIX.1”) specification.

The `-`signal_name and `-`signal_number syntax is marked by IEEE Std 1003.1-2008 (“POSIX.1”) as being an X/Open System Interfaces option.

`kill` also exists as a built-in to csh(1) and ksh(1), though with a different syntax.

# HISTORY

A `kill` command appeared in Version 3 AT&T UNIX.

April 24, 2025 | Debian