On Unix-like operating systems, the kill command sends a signal to a process. If you don’t specify which signal to send, by default the TERM signal is sent, which terminates the process.

This page describes the GNU/Linux kill command, located at /bin/kill.

Description

To send any signal to a process from the command line, use kill.

When you run kill at the command line, you may be running your shell’s built-in kill instead, which may have slightly different options. For information about the built-in version of kill in the bash shell, see the bash “kill” built-in command.

  • Description
  • Syntax
  • Examples
  • Related commands
  • Linux commands help

To list all available signals, use the -l (lowercase L) option. We’ve also provided a list of Linux signals for you to use as a quick reference.

Frequently-used signals include HUP, INT, KILL, STOP, CONT, and 0.

Signals may be specified in three ways:

  • by number (e.g., -9)
  • with the “SIG” prefix (e.g., -SIGKILL)
  • without “SIG” prefix (e.g., -KILL).

Specifying PID

To specify which process should receive the signal, use its numeric PID (process ID). To see a list of running processes, you can use the ps command.

Negative PID values can indicate the process group ID, rather than the process ID. See the PGID column in the output of the ps command, e.g., with ps -eo user,pid,pgid,command. If you specify a process group ID as the target of a kill command, all processes in the group receive the signal.

A PID of -1 is special. It indicates all processes except two: the kill process itself, and init (PID 1), which is the parent process of all processes on the system. Specifying -1 as the target sends the signal to all processes except these two.

Syntax

Terminate process(es):

kill pid …

Send a signal to process(es):

kill {-signal | -s signal} pid …

List available signals:

kill {-l | –list[=signal] | -L | –table}

Options

Examples

In these examples, if a command is listed as /bin/kill, it should run with that version of the kill command. Other commands may run with built-in kill.

kill -9 -1

Kill all processes the user has permission to kill, except the root process (PID 1) and the kill process itself.

kill -l

List all available signal names. Sample output:

HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH POLL PWR SYS

/bin/kill -l

Same as the previous command.

/bin/kill –list

Same as the previous two commands.

/bin/kill -L

List available signals and their numbers in a table format. Sample output:

1 HUP 2 INT 3 QUIT 4 ILL 5 TRAP 6 ABRT 7 BUS 8 FPE 9 KILL 10 USR1 11 SEGV 12 USR2 13 PIPE 14 ALRM 15 TERM 16 STKFLT 17 CHLD 18 CONT 19 STOP 20 TSTP 21 TTIN 22 TTOU 23 URG 24 XCPU 25 XFSZ 26 VTALRM 27 PROF 28 WINCH 29 POLL 30 PWR 31 SYS

/bin/kill –table

/bin/kill –list=11

Translate signal number 11 into its signal name. Output:

SEGV

kill 123 4567

Sends the default signal (KILL, signal number 9) for the processes with IDs 123 and 4567. Those processes are terminated.

fuser — Identify processes using files or sockets.killall — Kill processes by name.ps — List information about running processes.