首页/系统/Linux 运维命令速查/场景:杀不掉的进程怎么办
本包目录(613 条)
文件与目录76 条文本处理77 条网络命令82 条
进程与作业69 条
磁盘与文件系统51 条用户与权限44 条日志与排查40 条systemd 与服务42 条包管理34 条性能与监控48 条定时任务与计划50 条

场景:杀不掉的进程怎么办

kill -9 都没反应:先看状态(D 拿不掉、Z 已死等收尸),再决定等 IO/处理父进程,别反复硬杀。

Linux 运维命令速查系统更新于 2026-10-12
场景进程无法终止
组合ps stat + wchan + dmesg + 父进程处理

先判状态

先判状态
ps -o pid,ppid,stat,wchan:20,cmd -p 1234
cat /proc/1234/wchan; echo           # 内核等待点
cat /proc/1234/status | grep -E 'State|SigPend'

按状态处理

按状态处理
# D(不可中断,多在等 IO/NFS):
dmesg | tail -20; df -h; mount | grep -E 'nfs|cifs'
# Z(僵尸,已死等父进程收尸):
ps -o pid,ppid,cmd -p <僵尸PID>       # 找到父进程
ps -o pid,stat,cmd -p <父PID>         # 父进程不回收 → 重启/修复父进程
# 批量残留(确认后):
pkill -f '旧服务名'
D 状态进程连 -9 都不会立即生效:这是内核保护,不是权限问题;解决根因(IO/挂载)后它自己会退。

易错点

  • 反复 -9 只会增加内核负担:D 状态要修 IO 根因,Z 状态要处理父进程
  • NFS/CIFS 卡死会连带 shell 一起卡:涉及网络文件系统的操作加 timeout 包裹

数据来源与参考

  • man 1 ps(procps-ng 手册)
  • man 5 proc

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌