| Signal | # | A | C | G | Key | Act | Norm |
|---|---|---|---|---|---|---|---|
| SIGCHLD | 17 | · | C | G | · | I | child died or stopped |
| SIGHUP | 1 | · | C | G | · | T | TTY hangup; or reload config (convention) |
| SIGINT | 2 | A | C | · | ^C |
T | cancel current op |
| SIGKILL | 9 | · | · | · | · | T | last resort; no cleanup |
| SIGPIPE | 13 | · | C | G | · | T | write to pipe with no reader |
| SIGQUIT | 3 | · | C | · | ^\ |
D | debug halt (post-mortem) |
| SIGSEGV | 11 | A | C | G | · | D | invalid memory access |
| SIGSTOP | 19 | · | · | · | · | S | forced pause (job control) |
| SIGTERM | 15 | A | C | · | · | T | polite shutdown request |
Legend:
- # = Linux signal number
- A = ANSI C
- C = Catchable — disposition settable via
sigaction(2)(catch / block / ignore) - G = kernel-Generated by a system event (specific trigger in Norm cell)
- Key = TTY keystroke that generates it
- Act = default Action:
- T : Terminate
- D : terminate + Dump core
- S : Stop
- I : Ignore
SIGHUP's two meanings:
- TTY hangup : kernel-sent. Session leader (and its foreground process group) receives SIGHUP when the controlling terminal disconnects.
- reload config : userspace convention only. Admin or init system runs
kill -HUP <pid>to tell a long-running daemon to re-read its configuration. Kernel doesn't enforce this meaning; it's a contract daemons opt into.
Universals (omitted as columns):
- All are POSIX-mandated and exist on Linux and BSD.
- All can be sent with
kill(2)
Signal numbers shown are Linux-conventional; POSIX standardizes the names, not the integer values.
Generated with assistance from Claude Opus 4.7; this required *lots of iteration: 10+ cycles.