kill -l直接列出系统全部信号编号及名称,是查询信号的基础方法;其输出含64个信号(1–31为传统信号,34–64为实时信号),支持反查如kill -l TERM得15、kill -l 1得HUP;SIGTERM(15)允许进程优雅退出并清理资源,SIGKILL(9)则强制终止且不可捕获,仅作最后手段。
直接运行
就能列出系统支持的所有信号编号和名称,这是最基础也最关键的一步。但光看列表不够,真正影响进程管理效果的,是不同信号背后的处理机制和进程响应方式。
用 kill -l 查看全部信号
在终端输入:
会输出类似以下内容(共64个信号,编号1–31为传统信号,34–64为实时信号):
1) SIGHUP 2) SIGINT 3) SIGQUIT ... 9) SIGKILL 15) SIGTERM 18) SIGCONT 19) SIGSTOP ...
注意:
不带参数时显示全部;加信号名或编号可反查,例如:
CentOS Linux 7.9.2009
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离线兼容性测试。
下载
→ 输出→ 输出
SIGTERM(15号):默认的“优雅退出”信号
不带选项执行
,实际等价于
或
。它的特点是:
进程可以捕获、忽略或自定义处理该信号
多数服务会借此释放文件锁、关闭日志、保存状态后退出
如果进程正在忙(如写磁盘、等待网络响应),可能延迟响应
对 vim、nginx、redis 等程序,这是推荐的停止方式
SIGKILL(9号):强制终止,无协商余地
执行
发送 SIGKILL,作用机制完全不同:
内核直接终止进程,不通知用户空间代码
无法被阻塞、捕获或忽略,进程没有机会清理资源
可能导致临时文件残留(如 vim 的 .swp)、数据库未刷盘、端口未释放等问题
仅应在 SIGTERM 无效、进程卡死或陷入不可中断状态(D 状态)时使用
其他高频信号的实际管理用途
除了终止类信号,很多信号用于控制进程行为而非结束它:
SIGHUP(1号)
:常用于守护进程重载配置,如
让 Nginx 重新读取 conf 文件而不中断服务
SIGSTOP(19号)与 SIGCONT(18号)
:暂停和恢复进程,类似作业控制中的
和
/
SIGUSR1 / SIGUSR2(10/12号)
:留给用户自定义用途,例如某些程序用 SIGUSR1 触发日志轮转或内存快照
SIGINT(2号)与 SIGQUIT(3号)
:分别对应
和
,前台交互式程序常用,后者还会生成 core dump(若启用)
kill -lkill -lkill -lkill -l TERM15kill -l 1HUPkill PIDkill -15 PIDkill -TERM PIDkill -9 PIDkill -HUP $(pidof nginx)Ctrl+ZfgbgCtrl+CCtrl+\