Linux终止无响应进程应先发SIGTERM(kill PID)等待3–5秒清理,无效再用SIGKILL(kill -9 PID);图形界面卡死可用xkill点击窗口强制结束。

Linux 中终止无响应的挂起进程,核心是分两步走:先尝试优雅退出(SIGTERM),失败后再强制终结(SIGKILL)。直接上 kill -9 虽快,但容易丢数据、留锁、破坏服务状态——这不是“快”,是埋雷。
先查 PID:确认你要杀的是谁
挂起进程往往不响应 Ctrl+C 或界面关闭,但仍在系统中运行。必须先定位它:
- 用
pgrep 程序名快速获取 PID,例如:pgrep firefox或pgrep python3 - 若名称模糊,用
ps aux | grep 关键词查看完整命令行和用户信息 - 对已知可执行名(如
vim、nginx),也可用pidof vim
优先发 SIGTERM(-15):给进程一次体面退出的机会
这是默认信号,进程收到后会自行清理临时文件、释放端口、保存缓冲区数据,再退出:
-
kill 12345(12345 是查到的 PID)——等同于kill -15 12345 - 等待 3–5 秒,用
ps -p 12345验证是否消失;若有输出,说明还在运行
再发 SIGKILL(-9):进程“装死”时的最后手段
只有确认 SIGTERM 无效后才启用。它绕过所有处理逻辑,立即终止进程所有线程,不写盘、不释放锁、不通知子进程:
-
kill -9 12345或kill -SIGKILL 12345 - 执行后立刻检查:
ps -p 12345 -o pid= 2>/dev/null若无输出,表示已清除 - 注意:对数据库(MySQL/PostgreSQL)、缓存(Redis)、容器(dockerd)等关键服务,强制杀前务必确认业务已降级或有备份恢复方案
图形界面卡死?试试 xkill
当窗口无响应、键盘鼠标失灵,但系统本身还活着,xkill 是最直观的选择:
- 终端输入
xkill,鼠标变成白色叉号 - 把叉号移到卡死窗口上,左键单击——对应进程立刻收 SIGKILL
- 误点?右键退出 xkill 模式,不会误伤











