wiki.bash-hackers.org/commands/builtin/kill.md
2023-04-16 20:04:24 +12:00

3.4 KiB

The kill builtin command

Synopsis

kill [-s SIGNAL | -n SIGNALNUMBER | -SIGNAL] PID|JOB

kill -l|-L [SIGNAL...]

Description

The kill command is used to send signals to processes specified by their PID or their JOB-specification.

The signal(s) to be specified can have the following formats:

  • Numerical: The signal is specified using its constant numeric value. Be aware that not all systems have identical numbers for the signals.
  • Symbolic (long): The signal is specified using the same name that is used for the constant/macro in the C API (SIG<name>)
  • Symbolic (short): The signal is specified using the name from the C API without the SIG-prefix (<name>)

Without any specified signal, the command sends the SIGTERM-signal.

The kill command is a Bash builtin command instead of relying on the external kill command of the operating system to

  • be able to use shell job specifications instead of Unix process IDs
  • be able to send signals ("kill something") also, when your process limit is reached

Options

Option Description
-s SIGNAL specifies the signal to send
-n SIGNALNUMBER specifies the signal to send
-SIGNAL specifies the signal to send
-l [SIGNAL...] Lists supported/known signal numbers and their symbolic name. If SIGNAL is given, only list this signal, translated (if a number is given the symbolic name is printed, and vice versa)
-L [SIGNAL...] Same as -l [SIGNAL] (compatiblity option)

Return status

Status Reason
0 no error/success
!=0 invalid option
!=0 invalid signal specification
!=0 error returned by the system function (e.g. insufficient permissions to send to a specific process)

Examples

List supported signals

kill -l

Send KILL to a process ID

kill -9 12345

kill -KILL 12345

kill -SIGKILL 12345

Portability considerations

  • POSIX(R) and ISO C only standardize symbolic signal names (no numbers) and a default action

See also