【问题标题】:How to kill linux defunct process by shell script [closed]如何通过shell脚本杀死linux失效进程[关闭]
【发布时间】:2012-02-10 06:20:55
【问题描述】:

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

例如,当我运行命令时:

ps -ef|grep defunct.

找到可能的值。在那我只需要杀死“[chrome] defunct”进程。

示例条目:-

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

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

【问题讨论】:

  • 如果它已经失效,它就不能消耗 CPU。如果您看到 CPU 使用率增加,则会发生其他事情。而且,顺便说一句,这对 SO 来说是题外话。它应该在Super User

标签: linux shell zombie-process


【解决方案1】:

在父进程收集尸体或父进程死亡之前,不存在的进程不会消失。当父进程死亡时,失效的进程由 PID 1 继承(通常是 PID 1;它是由作业指定的某个系统进程),PID 1 旨在等待死体并将其从进程表中删除。因此,严格来说,只有当它们的父进程收集尸体时,已失效的进程才会消失。当原来的父母死去时,新的父母会收集尸体,这样已经失效的进程终于消失了。

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2013-11-11
      • 2012-11-22
      • 2012-04-22
      • 2016-07-08
      • 1970-01-01
      • 2014-03-23
      • 2013-03-26
      • 2015-12-31
      • 1970-01-01
      相关资源
      最近更新 更多