Unix Signals Reference

Look up POSIX and Linux signals by name or number with default disposition.

Complete reference for Unix and Linux signals — names, numbers, default actions (terminate, core, stop, continue, ignore) and whether each can be caught. Searchable, runs in your browser. It runs free in your browser on Gera Tools, with nothing uploaded.

Last updated Source: Gera Tools

What is the difference between SIGTERM and SIGKILL?

SIGTERM (15) is a polite termination request that a process can catch to clean up before exiting, and is what kill sends by default. SIGKILL (9) forces immediate termination and cannot be caught, blocked or ignored, so the process gets no chance to clean up.

This is a searchable reference for Unix and Linux signals — the asynchronous notifications the kernel and processes use to communicate events like interrupts, faults and termination requests. Each entry gives the number, the symbolic name, the default disposition if no handler is installed, and whether the signal can be caught.

How it works

A signal is delivered to a process by number; the C library maps names like SIGTERM to those numbers. If the process has no handler, the kernel applies the default action: Terminate (end the process), Core dump (end and write a core file), Stop (suspend), Continue (resume a stopped process), or Ignore. A process can install a handler for most signals, but SIGKILL (9) and SIGSTOP (19) are special — they cannot be caught, blocked or ignored, so the kernel can always force termination or suspension. Search by number, by name (the SIG prefix is optional), by action or by keyword.

Common signals you send manually

SignalNumberDefault actionCatchableTypical use
SIGHUP1TerminateYesReload daemon config
SIGINT2TerminateYesCtrl+C in terminal
SIGQUIT3Core dumpYesCtrl+\ — quit with core
SIGKILL9TerminateNoForce kill (no cleanup)
SIGTERM15TerminateYesPolite kill (default for kill)
SIGTSTP20StopYesCtrl+Z — suspend
SIGCONT18ContinueYesResume a stopped process
SIGUSR110TerminateYesApplication-defined
SIGUSR212TerminateYesApplication-defined

Fault signals you see in crashes

SignalNumberCause
SIGSEGV11Segmentation fault — invalid memory access
SIGBUS7Bus error — misaligned memory access
SIGFPE8Floating-point exception (including integer divide-by-zero)
SIGABRT6Abort — process called abort() directly
SIGILL4Illegal instruction
SIGTRAP5Debugger breakpoint / trace trap

Shell examples and exit codes

A process terminated by a signal exits with code 128 + signal_number. This is how the shell distinguishes signal deaths from normal non-zero exits:

$ kill -TERM 4321     # ask process 4321 to shut down gracefully
$ kill -9 4321        # force kill if it ignores SIGTERM
$ echo $?             # a process killed by signal 9 exits 137 (128 + 9)
$ sleep 60 &          # start background process
$ kill -SIGTSTP $!    # suspend it (Ctrl+Z equivalent)
$ kill -CONT $!       # resume it

Using SIGHUP for config reloads

Many Unix daemons — nginx, OpenSSH sshd, syslog, Postfix — treat SIGHUP as a signal to reload their configuration without restarting. This avoids dropping active connections. Check your daemon’s documentation to confirm it handles SIGHUP this way; the default action is termination, so a daemon that has not registered a SIGHUP handler will simply die.

Always try SIGTERM first and wait a few seconds before escalating to SIGKILL. SIGKILL gives the process no chance to flush buffers, release locks, or remove temporary files.

Everything in this tool runs in your browser; nothing is uploaded.