Linux进程怎么都杀不掉的的可能原因

Linux进程怎么都杀不掉的的可能原因,第1张

可能这个进程变成了僵尸进程,所以杀不掉;也有可能是有另外一个进程在启动你杀的那个进程,你杀死进程后它接着又被启动了,也就是说这个进程有一个父进程在启动它,它是一个子进程,这时需要杀死它的父进程。

nginx的进程分为Master进程和worker进程,worker进程是Master派生出来的子进程,其数量始终维持在一个数量上,当缺少一个worker进程是,Master就会派生一个新的子进程。所以你杀worker进程是杀不完的。

可以这样做:

kill `pgrep -o nginx`

解释一下:

pgrep -o nginx 查看第一个启动的进程号,一般就是主进程号了。

kill `pgrep -o nginx` 等价于 kill 主进程号。

一个进程对kill -9不响应我知道的有两种情况

未接受到信号或者没有得到分配的时间来完成自己退出所需要的步骤,因为你的CPU100%这个市可能的,多等一些时间应该会自动中止

进程处于IO等待中这时候屏蔽了信号接收自然不会对KILL作出响应,除非IO的请求得到响应,要判断这种情况你可以看 ps aux|grep vi看看进程状态, 如果是 D 那就是了,这个情乱会麻烦一点因为它需要请求的IO得到满足或者被拒绝,而系统没有给与明确的答复他就一直干等着,根据你的描述你需要看这个打开的文件的情况,如果是nfs,那么建议在添加挂载选项为 bg,hard,intr避免这个问题的重现,如果是本地文件你需要察看硬盘或者存储阵列卡是否有问题但是要杀死这个进程却需要重启来解决

anyway这只是我的经验和理解,网上看看是否有其他的办法


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/9031311.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-24
下一篇 2023-04-24

发表评论

登录后才能评论

评论列表(0条)

保存