原文: 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. SDUT OJ 之 连通分量个数 (dfs)

    数据结构实验:连通分量个数 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述  在无向图中,如果从顶点vi到顶点vj有路径,则称vi ...

  2. jQuery移动光标改变图像

    脚本代码移动光标改变图像是一款让你通过移动光标显示和调整多个图像或其他方法来触发. 代码:http://www.huiyi8.com/sc/10628.html

  3. HihoCoder1650 : 扁平化管理([Offer收割]编程练习赛38)(二分)

    描述 小Hi的公司包括CEO在内一共有N名员工.这N名员工的上下级关系形成树形结构,CEO处于树根,普通员工处于叶子节点. 现在公司希望管理扁平化,要求树形结构中的层级不超过L层.此外,假设A是B的直 ...

  4. 【LeetCode】031. Next Permutation

    题目: Implement next permutation, which rearranges numbers into the lexicographically next greater per ...

  5. 【运维程序】简单的命令控制器(支持定时命令执行、重复定时任务命令和进程管理,开发这个小程序主要是为了方便管理服务进程)【个人github项目】

    一.前言: command-controller 一个运维程序,简单的命令控制器(支持定时命令执行和重复定时命令,开发这个程序主要是为了方便管理服务进程) 本来是要用python做的,但是之前做ffm ...

  6. 微软 codeplex 团队

    http://www.codeplex.com/site/users/view/Microsoft

  7. WPF学习系列之五(WPF控件)

    控件:    1.内容控件------这些控件能够包含嵌套的元素,为它们提供几乎无限的显示能力.内容控件包括Lable,Button 以及ToolTip类. 内容控件是更特殊的控件类型,它们可以包含( ...

  8. 原生app与WebApp的区别

    Native App开发Native App开发即我们所称的传统APP开发模式(原生APP开发模式),该开发针对IOS.Android等不同的手机操作系统要采用不同的语言和框架进行开发,该模式通常是由 ...

  9. MVVM里绑定TreeView控件的SelectedItem

    <TreeView x:Name="treeView"> <i:Interaction.Triggers> <i:EventTrigger Event ...

  10. 1、R-reshape2-cast

    1.cast:     长型数据转宽型数据 (1).acast,dcast的区别在于输出结果.acast 输出结果为vector/matrix/array,dcast 输出结果为data.frame. ...