如何通过shell脚本杀死linux defunct进程

时间:2012-02-10 06:20:55

标签: linux shell zombie-process

在我的服务器机器中,某些进程每天都会停止运行状态。它会影响我的CPU使用率。需要编写一个shell脚本来终止已失效的进程ID和父ID。

例如,当我运行命令时:

ps -ef|grep defunct.

发现可能值。因为我只需要杀死“[chrome] defunct”进程。

样本条目: -

bitnami  12217 12111  0 Feb09 pts/3    00:00:00 [chrome] <defunct>

我需要杀死这种类型的chrome条目。可以任何人建议一些样本来杀死条目

2 个答案:

答案 0 :(得分:4)

在父进程收集尸体或父亲死亡之前,失效进程不会消失。当父进程终止时,失效进程由PID 1继承(通常它是PID 1;它是用作业指定的一些系统进程),并且PID 1被设计为等待死体并从进程表中删除它们。因此,严格地说,当他们的父母收集尸体时,失效的过程才会消失;当原来的父母去世时,新的父母会收集尸体,所以失效的过程终于消失了。

因此,要么编写父代码,以便等待其死孩子,要么终止父进程。

请注意,失效进程占用的资源非常少 - 基本上,进程表中的一个插槽和父进程可以请求的资源(计时)信息。 话虽如此,去年我正在开发一台机器,每分钟有3个新的失效进程,由PID 1以外的系统进程拥有,但没有被收获。像ps这样的事情花费了很长很长时间,当已经失效的进程数量攀升到数十万时。 (解决方案是为o / s安装正确的修订包。)它们并非完全无害,但有一些不是主要问题。

答案 1 :(得分:2)

它已经死了。父母需要收获它然后它会消失。