SIGKILL

  • 2026.07.23 | youres | 144次围观
    timeout -s SIGKILL强制终止顽固进程:5个实战场景让无法杀掉的程序彻底退出
    为什么SIGTERM杀不掉的进程需要SIGKILL 在Linux运维中,timeout命令是控制任务执行时间的利器。默认情况下,timeout向目标进程发送SIGTERM(15号信号),相当于礼貌地说"请结束工作"。这个机制对正常进程有效,但如果遇到以下几类进程,SIGTERM就彻底失效了:无限循环且不响应信号的C程序、僵尸进程(Z状态)、处于不可中断睡眠(D状态)的进程、卡在系统调用中的进程。这时候只能动用SIGKILL(9号信号),它的特点是:不可捕获、不可忽略、不可阻挠...
  • 2026.07.21 | youres | 174次围观
    xargs子进程SIGTERM与SIGKILL信号处理差异:温和终止和强制杀死的实战区别
    用 xargs 跑并行任务,最怕遇到进程杀不掉的情况。按 Ctrl+C 有的任务正常退出,有的直接消失;给进程发 SIGTERM 没反应,换 SIGKILL 才强制终止——这两种信号的差别到底在哪?子进程对它们的行为为什么完全不同?今天彻底把这个事情讲清楚。 先搞懂两个信号的本质区别 Linux 里信号是内核向进程发送的通知机制,SIGTERM 和 SIGKILL 听着差不多,但本质完全不同: SIGTERM(信号编号 15)是温和请求:内核告诉进程请你体面地收场。进程...
  • 2026.07.17 | youres | 139次围观
    timeout -s参数发送自定义信号实战用法:5个场景让超时控制精准又优雅
    Linux的timeout命令有个很实用的参数:-s。它允许你在超时时发送自定义信号,而不是默认的SIGTERM。这个功能看似简单,但在实际生产环境中能解决不少棘手问题。 为什么需要自定义信号 timeout默认发送SIGTERM信号(15号信号)。这个信号很"温和"——进程可以捕获它并做清理工作。但有些进程会忽略SIGTERM,或者你希望进程在超时前完成特定操作,这时候就需要自定义信号。 常见场景: 顽固进程:某些Java应用、数据库进程捕获了SIGTERM但拒绝...
  • 2026.07.14 | youres | 133次围观
    timeout --kill-after二次信号发送机制详解:为什么TERM杀不掉的进程终于退出了
    写Shell脚本给命令加超时限制,timeout默认超时发的是SIGTERM信号。可很多时候目标进程要么自己捕获了TERM优雅退出逻辑跑飞了,要么干脆忽略TERM,结果超时了进程还活着,脚本卡在那儿干等。timeout --kill-after就是专门解决这个"杀不死"问题的二次信号机制。这篇文章把它的工作逻辑、时间线和3个常见误区一次讲透。 一、先回顾timeout的退出流程 timeout来自GNU coreutils,基本用法是timeout 10s ./task....
1