feizxiang3 发表于 2012-11-7 16:24:30

linux系统管理之僵尸进程

前段时间面试,简历上写着熟悉linux系统管理,面试官便问,如果系统很卡,一般你会怎么处理?
我说一般会先top查看是否有阻塞进程占cpu,然后kill掉。再不行,就重启。。
他又问僵尸进程和孤儿进程的区别,如何杀死僵尸进程。。我本来以为跟刚才那道题不相关,直到今天才知道关系很大。。
今天编代码的时候,无意中产生了僵尸进程,zombie!!
然后系统真的很卡..好了,今天的问题是如何杀死僵尸进程,高手帮忙解答。。感兴趣的同学欢迎学习讨论。
第一次发贴~
欢迎顶帖~

hslx111 发表于 2012-11-7 21:21:38

孤儿进程是指父进程先于子进程结束的子进程,系统自动把这样的进程过继给init进程,然后init为相应的子进程调用wait函数。
僵尸进程是指在父进程没有wait之前就已经结束了,这样就导致无法释放内核中保存的该子进程的一些信息,造成资源的浪费。
可以用ps查看进程,状态为’Z'的是僵尸进程。
杀死僵尸进程一劳永逸的方法就是杀掉它的父进程,这样它就变成了一个孤儿进程,然后就过继给init进程,由init进行清理。

feizxiang3 发表于 2012-11-7 23:02:48

hslx111 发表于 2012-11-7 21:21 static/image/common/back.gif
孤儿进程是指父进程先于子进程结束的子进程,系统自动把这样的进程过继给init进程,然后init为相应的子进程调 ...

thx for answering~
It's helpful.

feizxiang3 发表于 2012-11-7 23:12:01

本帖最后由 feizxiang3 于 2012-11-7 23:13 编辑

网上很多相关的资料,但大都是重复的~补充一些:
通过ps命令查看其带有defunct的标志。僵尸进程是一个早已死亡的进程,但在进程表(processs table)中仍占了一个位置(slot)。
$ps -ef | grep defunct 查看僵尸进程
查找状态为Z的进程,Z就是代表zombie process
ps -A -o stat,ppid,pid,cmd | grep -e '^
会列出所有僵尸进程及其父进程的pid
一般无法直接杀死zombie,所以kill -9父进程pid,使其变为孤儿进程,交由init进程为其收尸。。


hslx111 发表于 2012-11-8 00:34:02

feizxiang3 发表于 2012-11-7 23:12 static/image/common/back.gif
网上很多相关的资料,但大都是重复的~补充一些:
通过ps命令查看其带有defunct的标志。僵尸进程是一个早已 ...

正则表达式,总是记不住啊= =
页: [1]
查看完整版本: linux系统管理之僵尸进程