文档章节

僵死进程

曾劲松
 曾劲松
发布于 2016/05/07 15:08
字数 490
阅读 61
收藏 4

        是指子进程退出时,父进程并未对其发出的SIGCHILD信号进行适当处理,导致子进程停留在僵死状态等待其父进程为其收尸,这个状态下的子进程就是僵死进程。一个已经终止但是其父进程尚未对其进行善后处理(获取终止子进程的有关信息,释放它仍占用的资源)的进程称为僵尸进程(zombie)。

        在fork()/execve()过程中,假设子进程结束时父进程仍存在,而父进程fork()之前既没安装SIGCHLD信号处理函数调用waitpid()等待子进程结束,又没有显式忽略该信号,则子进程成为僵死进程,无法正常结束,此时即使是root身份kill -9也不能杀死僵死进程。补救办法是杀死僵尸进程的父进程(僵死进程的父进程必然存在),僵死进程成为"孤儿进程",过继给1号进程init,init始终会负责清理僵死进程。

       

怎么查看僵尸进程

        利用命令ps,可以看到有标记为Z的进程就是僵尸进程。

怎样来清除僵尸进程

1.改写父进程,在子进程死后要为它收尸。具体做法是接管SIGCHLD信号。子进程死后,会发送SIGCHLD信号给父进程,父进程收到此信号后,执行waitpid()函数为子进程收尸。这是基于这样的原理:就算父进程没有调用wait,内核也会向它发送SIGCHLD消息,尽管对的默认处理是忽略,如果想响应这个消息,可以设置一个处理函数。

2.把父进程杀掉。父进程死后,僵尸进程成为"孤儿进程",过继给1号进程init,init始终会负责清理僵尸进程.它产生的所有僵尸进程也跟着消失。





© 著作权归作者所有

共有 人打赏支持
上一篇: MIME类型
下一篇: find_if
曾劲松
粉丝 4
博文 200
码字总数 141434
作品 0
武汉
私信 提问
孤儿进程与僵尸进程【比较】

今天在群里聊起僵尸进程,才发现自己把僵尸进程和孤儿进程搞混了,简直不能原谅。速度查了一下,原来如此。感谢原作者的分享,如下: 1、基本概念   我们知道在unix/linux中,正常情况下,...

006玩命
2015/06/01
0
0
每天一个linux命令(47):ps命令

Linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,...

姬风
2014/04/10
0
0
linux之ps命令——进程命令简单介绍

介绍: Linux 查看进程ps命令,非常强大的进程查看命令。使用ps命令可以查看进程状态、进程有没有僵死、进程占用资源等等。 详细: 语法:ps [options] [--help]。 1、进程有5种状态 运行(正...

FrendLin
2016/07/07
33
0
Linux下调用system()函数导致的问题

前一段时间用了system()函数调用脚本启动另一个进程,发现两个问题: 1.执行killall命令杀新启进程时会连原进程一起kill掉. 2.原进程打开的侦听端口,如果新启动的进程不退出无法释放(socket资...

鉴客
2011/10/25
6.4K
1
关于 安装 fcitx4.0beta的一些问题

在这里的第一篇博文,记录下在使用 fcitx4.0 时的一些问题 。 1. fcitx 有个僵死进程的问题 fcitx 和 im-switch ,fcitx 有个僵死进程并且杀不死。好像这个问题一直都有,网上传的解决办法是...

君无畏
2010/10/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Scala之初步认识与环境准备

1. 了解 Scala 1.1. 什么是 Scala Scala 是 Scalable Language 的简写,是一门多范式的编程语言。 Scala设计的初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行于Java平台(Java虚...

飞鱼说编程
20分钟前
1
0
Vue项目分环境打包的实现步骤

在项目开发中,我们的项目一般分为开发版、测试版、Pre版、Prod版。Vue-cli的默认环境一只有dev和prod两个,之前每次要发布测试版或Pre版都是修改了源码中API地址后打包,这样很麻烦。如果能...

peakedness丶
20分钟前
1
0
vue+lowdb+express

搭建流程: 1.安装Node.js; 2.安装npm; 3.安装Express; 搭建流程 npm install -g express 安装 express 生成器 npm install -g express-generator 查看是否安装成功,随便输的一个命令...

Js_Mei
26分钟前
1
0
Qt那些事0.0.15

以下与Q_DECLARE_METATYPE相关内容全部是翻译自Qt文档。参看QVariant Class | Qt Core 5.9以及QMetaType Class | Qt Core 5.9 QVariant QVariant::fromValue(const T& value) 返回一份包含v......

Ev4n
27分钟前
3
0
spring上传文件返回绝对路径,简单工具类

import com.google.common.io.Files;import lombok.extern.slf4j.Slf4j;import org.springframework.web.multipart.MultipartFile;import java.io.File;import java.io.IOExceptio......

Boss-x
38分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部