直接运行kill -l可列出系统全部64个信号(1–31为传统信号,34–64为实时信号),支持反查如kill -l TERM得15、kill -l 1得HUP;SIGTERM(15)允许优雅退出,SIGKILL(9)强制终止且不可捕获。

直接运行 kill -l 就能列出系统支持的所有信号编号和名称,这是最常用、最快速的方法。
用 kill -l 查看全部信号
在终端输入:
kill -l
输出类似以下内容(共 64 个信号,编号 1–31 为传统信号,34–64 为实时信号):
1) SIGHUP 2) SIGINT 3) SIGQUIT 9) SIGKILL 15) SIGTERM 18) SIGCONT 19) SIGSTOP
注意:kill -l 不带参数时显示全部;加参数可反查,例如:
-
kill -l TERM→ 输出 15 -
kill -l 1→ 输出 HUP - 信号名大小写不敏感,
kill -l sigterm同样有效
查信号语义与默认行为:man 7 signal
kill -l 只给编号和名字,真正理解每个信号“干什么、怎么响应”,得看手册页:
man 7 signal
进入后可用 /SIGTERM 搜索具体信号,重点关注两栏:
- Default action:如 Term(终止)、Core(生成 core dump)、Ignore(忽略)、Stop(暂停)
-
Signal description:说明用途,例如
SIGKILL cannot be caught, blocked, or ignored
查底层定义:读 signal.h 头文件
信号的原始定义来自内核头文件,适合验证或深入理解:
cat /usr/include/asm-generic/signal.h 2>/dev/null | grep "#define SIG"
若提示文件不存在,可尝试:
find /usr/include -name "signal.h" -exec cat {} \; 2>/dev/null | grep "#define SIG"
输出形如:#define SIGHUP 1,明确给出宏名与数值映射。
按用途筛选常用信号
不必记全 64 个,掌握高频信号的实际作用更实用:
-
SIGHUP (1):终端断开时发送;守护进程常用它重载配置(如
kill -HUP $(pidof nginx)) - SIGINT (2):Ctrl+C 触发,前台进程中断
- SIGQUIT (3):Ctrl+\ 触发,终止并生成 core dump(需 ulimit -c 非零)
- SIGTERM (15):kill 默认信号,允许进程清理资源后退出
- SIGKILL (9):强制终止,不可捕获、不可忽略,仅用于卡死进程
-
SIGSTOP (19) / SIGCONT (18):暂停和恢复进程(等效于 Ctrl+Z 和
fg)


















