kill -9 都杀不掉的进程,是卡在 D 状态了

举报
yd_249372318 发表于 2026/11/06 08:09:40 2026/11/06
【摘要】 kill -9 失效的进程卡在不可中断睡眠 D 状态,多为 IO/NFS 引起,恢复通路才能唤醒。

kill -9 是最后的铁腕,但也有失效的时候:进程还在,状态列却卡在 D,什么信号都喂不进去。这不是权限问题——D 是 uninterruptible sleep(不可中断睡眠),这个状态下的进程不响应任何信号,9 号也一样。

D 状态的进程通常卡在系统调用上,最常见的是 IO:NFS 挂载点断了、磁盘抽风、存储设备假死。内核在等 IO 返回,返回之前进程就是不可打断的。

先确认:ps -eo pid,stat,wchan,cmd | grep ' D' 看 WCHAN 列,能大概看到卡在哪个内核函数;挂了 NFS 的机器,dmesg 里常有 nfs: server not responding 这类实锤。

处理分两步:存储通路断了引起的(NFS 最典型),先恢复网络和挂载点,进程大概率自己就醒了;实在不行 umount -l 懒卸载配合重启是最快路径。本机磁盘 IO 抽风的,等 IO 恢复即可,别跟 kill 较劲——信号在这个状态就是送不进去。

预防一句:挂 NFS 的时候加超时参数(soft、timeo,能接受数据风险的话),D 状态僵尸会少很多。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。