原文: How to kill defunct process

译者: youngsterxyf

defunct进程是指出错损坏的进程,父子进程之间不会再通信。有时,它们会演变成“僵尸进程”,存留在你的系统中,直到系统重启。可以尝试 “kill -9” 命令来清除,但多数时候不管用。

为了杀死这些defunct进程,你有两个选择:

  • 重启你的计算机
  • 继续往下读...

我们先看看系统中是否存在defunct进程:

$ ps -A | grep defunct

假设得到的输出如下所示:

 ? :: mono <defunct>
? :: mono <defunct>
? :: mono <defunct>
? :: ruby <defunct>
? :: ruby <defunct>
? :: ruby <defunct>

这意味着存在6个defunct进程:3个mono进程,以及3个ruby进程。这些进程之所以存在,可能是因为应用程序写得很烂或者用户做了不常见的操作,在我这,一定是我写的mono C#程序存在严重问题 :smile: 。

现在,我们来看看这些进程的ID及其父进程ID:

$ ps -ef | grep defunct | more

以上命令的输出如下:

UID PID PPID ...
--------------------------------------------------------------- kenno Mar22 ? :: [mono] <defunct>
kenno Mar22 ? :: [mono] <defunct>
kenno Mar23 ? :: [mono] <defunct>
kenno Mar27 ? :: [ruby] <defunct>
kenno Mar27 ? :: [ruby] <defunct>
kenno Apr02 ? :: [ruby] <defunct>
  • UID:用户ID
  • PID:进程ID
  • PPID:父进程ID

如果你使用命令 “kill -9 8328” 尝试杀死ID为8328的进程,可能会没效果。要想成功杀死该进程,需要对其父进程(ID为6757)执行kill命令( $ kill -9 6757 )。对所有这些进程的父进程ID应用kill命令,并验证结果( $ ps -A | grep defunct )。

如果前一个命令显示无结果,那么搞定!否则,可能你需要重启一下系统。

参考文献


译注

执行命令 ps aux | grep defunct ,如果进程为defunct,则其第8列为 。如下所示:

work       0.1  0.0            pts/    Z    :   : [python] <defunct>
work 0.0 0.0 pts/ Z : : [python] <defunct>
work 0.0 0.0 pts/ Z : : [python] <defunct>
work 0.1 0.0 pts/ Z : : [python] <defunct>
work 0.0 0.0 pts/ Z : : [python] <defunct>
work 0.1 0.0 pts/ Z : : [python] <defunct>
work 0.0 0.0 pts/ Z : : [python] <defunct>
work 0.1 0.0 pts/ Z : : [python] <defunct>
work 0.0 0.0 pts/ Z : : [python] <defunct>
work 0.1 0.0 pts/ Z : : [python] <defunct>
work 0.0 0.0 pts/ Z : : [python] <defunct>
work 0.0 0.0 pts/ Z : : [python] <defunct>
work 0.0 0.0 pts/ Z : : [python] <defunct>
work 0.0 0.0 pts/ Z : : [python] <defunct>
work 0.0 0.0 pts/ Z : : [python] <defunct>
work 0.0 0.0 pts/ Z : : [python] <defunct>
work 0.0 0.0 pts/ Z : : [python] <defunct>
												

如何杀死defunct进程的更多相关文章

  1. Kill杀死Linux中的defunct进程(僵尸进程)

    一.什么是defunct进程(僵尸进程)? 在 Linux 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他,那么他将变成一个僵尸进程.当用ps命令观察进程的执行状 ...

  2. Linux中的defunct进程(僵尸进程)

    一.什么是defunct进程(僵尸进程)?在 Linux 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他,那么他将变成一个僵尸进程.当用ps命令观察进程的执行状态 ...

  3. 杀死Linux中的defunct进程(僵尸进程)的方法指南

    杀死Linux中的defunct进程(僵尸进程)的方法指南_LINUX_操作系统_脚本之家https://www.jb51.net/LINUXjishu/457748.html 这样能看到僵尸进程.

  4. 僵尸进程的产生和避免,如何kill杀掉linux系统中的僵尸defunct进程

    在 Unix系统管理中,当用ps命令观察进程的执行状态时,经常看到某些进程的状态栏为defunct,这就是所谓的"僵尸"进程."僵尸"进程是一个早已 死亡的进程 ...

  5. Linux Guard Service - 杀死守护进程

    杀死某个子进程 杀死守护进程的子进程后,改进程会变为僵尸进程 14087 ? Ss 0:00 ./test4-1 14088 ? S 0:00 \_ ./test4-1 14089 ? S 0:00 ...

  6. (转)[sh] <defunct>进程

    我也碰到僵尸进程了,必须通过关闭僵尸进程的父进程或者重启解决. 来自:http://jerrybear.blog.51cto.com/629421/387846 今日发现服务器上多了一些名称为[sh] ...

  7. 【zombie】如何查看并杀死僵尸进程?

    [zombie]如何查看并杀死僵尸进程? 赏金Micheal关注 2019.03.31 19:40:15字数 1,016阅读 4,373 僵尸进程定义 In UNIX System terminolo ...

  8. window 和 linux 环境下杀死tomcat进程——也可以解决其他端口被占用的问题

    1.应用场景 在Windows或者linux操作系统中,我们在启动一个tomcat服务器时,经常会发现8080端口已经被占用的错误,而我们又不知道如何停止这个tomcat服务器. 2.window环境 ...

  9. webDriver 执行杀死浏览器进程方法

    /**     * 执行dos命令     * @param command     */    public static void command(String command) {       ...

随机推荐

  1. 使用python转换编码格式

    之前有写过一个使用powershell转换文档格式的方法,然而因为powershell支持不是很全,所以并不好用.这里使用python再做一个. 思路 检测源码格式,如果不是utf8,则进行转换,否则 ...

  2. 截取带HTML标签的文本并保留文本样式

    一个截取HTML文本的工具,可以按照文字字数或文字字节长度进行截取,保留HTML样式并在最后自动补齐截取后的标签.按工作要求编写,时间紧迫,代码未优化,欢迎讨论和指正.​1. [文件] SubHtml ...

  3. 时间序列数据库概览——基于文件(RRD)、K/V数据库(influxDB)、关系型数据库

    一般人们谈论时间序列数据库的时候指代的就是这一类存储.按照底层技术不同可以划分为三类. 直接基于文件的简单存储:RRD Tool,Graphite Whisper.这类工具附属于监控告警工具,底层没有 ...

  4. C语言中mktime函数功能及用法

    今天联系写一个日历的程序,需要算出月份中的第一天是星期几,用到了mktime()这个函数,感觉这个函数挺有用的,分享给大家. 原型:time_t mktime(struct tm *) 其中的tm结构 ...

  5. arm-linux-gcc4.4.3编译busybox-1.25.0

    系统环境: 1.操作系统:Ubuntu16.04 2.交叉编译工具链:arm-linux-gcc4.4.3 3.busybox源码包:busybox-1.25.0 一.修改Makefile配置 首先解 ...

  6. POI2014

    ...一个shabi和一堆神题的故事 今天只写了两道 之后随缘更吧 啊 顺便 snake我是不会更的 bzoj3829 POI2014 Farmcraft mhy住在一棵有n个点的树的1号结点上,每个 ...

  7. 「UVA644」 Immediate Decodability(Trie

    题意翻译 本题有多组数据.每组数据给出一列以"9"结尾的仅包含'0'和'1'的字符串,如果里面有一个是另一个的子串,输出"Set &case is not imm ...

  8. 高性能的序列化与反序列化:kryo的简单使用

    前言:kryo是个高效的java序列化/反序列化库,目前Twitter.yahoo.Apache.strom等等在使用该技术,比如Apache的spark.hive等大数据领域用的较多. 为什么使用k ...

  9. Linux命令汇总(二)

    1.登录用户设置 新创建了一个用户,用useradd指令,但是发现通过终端无法登陆:  echo password | passwd --stdin username  或者  passwd --st ...

  10. Ubuntu——跟新flash

    使用命令: apt-get install adobe-flashplugin 即可