---
name: "kill"
section: "1"
platform: "openbsd"
package: "man"
version: "8.0-current-20261101"
release: "OpenBSD 8.0-current (2026-11-01)"
platforms: ["linux", "freebsd", "openbsd", "macos"]
url: "https://new.carta.tech/kill"
---

# kill(1)

terminate or signal a process

## 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)](/sh/1.md) 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)](/signal/3.md) 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)](/init/8.md) process the hangup signal, instructing it to re-read [ttys(5)](/ttys/5.md):

```
# kill -HUP 1
```

## SEE ALSO

[csh(1)](/csh/1.md), [ksh(1)](/ksh/1.md), [pkill(1)](/pkill/1.md), [ps(1)](/ps/1.md), [kill(2)](/kill/2.md), [signal(3)](/signal/3.md)

## 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)](/csh/1.md) and [ksh(1)](/ksh/1.md), though with a different syntax.

## HISTORY

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