每个标准 POSIX/Linux 进程信号的速查参考——从 SIGHUP 到 SIGSYS——展示每个信号的编号、默认动作(Term、Core、Ign、Stop、Cont)、是否可捕获、由什么触发以及对应的 shell 退出码(128+N)。在浏览器中运行,免费。

解释每个标准 POSIX/Linux 进程信号。一切都在您的浏览器中从内置参考运行——不会向服务器发送任何内容。

信号 编号 默认动作 可捕获 描述 退出码
没有信号匹配您的搜索。
请尝试其他名称或编号——例如 SIGTERM、11 或 segmentation。
除此之外,Linux 还提供从 SIGRTMIN 到 SIGRTMAX 的实时信号(通常为信号 34–64)。它们没有预定义含义,并按保证的顺序传递——由应用程序为其分配自己的用途。
所示信号编号为 x86/ARM ABI 的默认值。少数信号在其他架构上具有不同的编号(例如 Alpha、MIPS 和 SPARC),因此在脚本中应始终优先使用符号名称(SIGKILL)而非原始编号(9)。

关于 Linux 信号

Linux 信号参考在一张便于浏览的表格中列出了所有标准的 POSIX/Linux 进程信号,从 SIGHUP 到 SIGSYS。每一行都显示信号的编号、默认行为——终止、核心转储、忽略、停止或继续——进程是否可以捕获它、通常是什么触发了它,以及进程因该信号终止时你会看到的 Shell 退出代码(128 + N)。

退出代码这一列解决了开发者每天都会遇到的困惑:以 137 退出的容器是被 SIGKILL(9)终止的,以 139 崩溃的是 SIGSEGV(11)导致的段错误,而以 143 干净退出的则来自 SIGTERM(15)。搜索支持按名称、编号、退出代码或含义进行,因此无论你手头有哪条线索都可以从它入手。

两条注释涵盖了参考资料通常会遗漏的部分:没有预定义含义、按保证顺序传递的实时信号 SIGRTMIN 到 SIGRTMAX,以及架构差异说明——少数信号编号在 Alpha、MIPS 和 SPARC 架构上有所不同,这也是脚本应使用符号名称的原因。所有内容都在你的浏览器中运行。

如何使用 Linux 信号

  1. 按名称(SIGKILL)、编号(9)、Shell 退出代码(137)或诸如"segmentation"之类的关键词搜索信号。
  2. 查看这一行:编号、默认行为、是否可被捕获,以及是什么触发了它。
  3. 使用退出代码列,将一个 128+N 的 Shell 状态反推回终止进程的信号。
  4. 使用该行的复制按钮,复制信号名称或退出代码。
  5. 如果你在编写可移植脚本,请查看关于实时信号和各架构编号差异的说明。

常见问题

SIGTERM(15)礼貌地请求进程退出——它可以被捕获,因此进程可以先做清理工作。SIGKILL(9)则在内核层面立即终止进程,无法被捕获、阻塞或忽略。请始终先尝试 SIGTERM,再考虑使用 kill -9。

SIGKILL 和 SIGSTOP。内核会直接强制执行这两个信号,因此没有任何处理程序能拦截它们——SIGKILL 总是终止进程,SIGSTOP 总是挂起进程。

当进程被某个信号杀死时,Shell 会报告 128 加上该信号编号的结果。因此 139 就是 128 + 11:进程死于 SIGSEGV,即段错误。该表格在每个致命信号旁都列出了对应的退出代码。

SIGRTMIN 到 SIGRTMAX——在 Linux 上通常是编号 34 到 64。与标准信号不同,它们没有预定义的含义,而是按保证顺序排队并传递,因此应用程序可以为它们分配自己的用途。

因为少数信号编号在 Alpha、MIPS 和 SPARC 等不同 CPU 架构之间有所差异。符号名称——kill -TERM 而不是 kill -15——在任何地方都表示相同的含义,因此它是更具可移植性的选择。

是的,完全免费。完整表格内置在页面中,所有搜索和复制操作都在你的浏览器中完成。

需要帮助?
使用此工具时遇到问题?请告诉我们的团队。
报告问题

将此免费工具添加到你自己的网站 — 复制并粘贴下面的代码。