跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

怎么在Linux利用Kill-L查看系统支持的所有信号量及其对进程管理的作用差异

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

相关文章