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

# NAME

`kill` — terminate or signal a process

# SYNOPSIS

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

`kill` | `-l` [exit_status]

`kill` | `-signal_name` pid ...

`kill` | `-signal_number` pid ...

# DESCRIPTION

The `kill` utility sends a signal to the process(es) specified by the pid operand(s).

Only the super-user may send signals to other users' processes.

The options are as follows:

`-s` signal_name
  A symbolic signal name specifying the signal to be sent instead of the default `TERM`.
`-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. In /bin/kill, if the variable `POSIXLY_CORRECT` is set in the environment, this uses the POSIX specified format, otherwise a slightly more pleasing layout is used.

`-signal_name`
  A symbolic signal name specifying the signal to be sent instead of the default `TERM`.
`-signal_number`
  A non-negative decimal integer, 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
  Broadcast the signal to all processes in the current process group belonging to the user.

Any other negative pid is interpreted as the negative of a process group identifier, and the signal is sent to all members of that group.

Note that while not required by this implementation, if the first pid operand is negative, it should be preceded by the “--” end of options indicator, to avoid the pid being treated as yet more options. That is always required if no specific signal is specified and the first pid is negative, or that pid would be treated as the signal_number.

Some of the more commonly used signals:

0
  0 (does not affect the process; can be used to test whether the process exists)
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)
17
  STOP (non-catchable, non-ignorable, causes process to temporarily stop, after which it can later be resumed using `SIGCONT`)
19
  CONT (stopped processes resume execution)

`kill` is a built-in to most shells, including sh(1) and csh(1); it allows job specifiers of the form ``%...'' as arguments so process id's are not as often used as `kill` arguments. See csh(1), sh(1) or the man page for the shell in use for details.

# DIAGNOSTICS

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

# SEE ALSO

csh(1), pgrep(1), pkill(1), ps(1), sh(1), kill(2), sigaction(2), signal(7)

# STANDARDS

The `kill` utility is expected to be IEEE Std 1003.2 (“POSIX.2”) compatible.

# HISTORY

A `kill` command appeared in Version 3 AT&T UNIX in section 8 of the manual. The original BSD description was: ‘terminate a process with extreme prejudice’.

August 15, 2021 | NetBSD 11.0