[技术| 编程·课件·Linux] linux系统管理之僵尸进程

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

评分

参与人数 1学分 +6 收起 理由
admin + 6 欢迎技术讨论

查看全部评分

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

点评

thx for answering~ It's helpful.  详情 回复 发表于 2012-11-7 23:02

评分

参与人数 1学分 +6 收起 理由
admin + 6 积极解答同学问题!很热心!加分!

查看全部评分

feizxiang3 · #3 · 2012-11-7 23:02:48  回复 支持 反对
hslx111 发表于 2012-11-7 21:21
孤儿进程是指父进程先于子进程结束的子进程,系统自动把这样的进程过继给init进程,然后init为相应的子进程调 ...

thx for answering~
It's helpful.
feizxiang3 · #4 · 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 '^[Zz]
会列出所有僵尸进程及其父进程的pid
一般无法直接杀死zombie,所以kill -9  父进程pid,使其变为孤儿进程,交由init进程为其收尸。。


点评

正则表达式,总是记不住啊= =  详情 回复 发表于 2012-11-8 00:34
hslx111 · #5 · 2012-11-8 00:34:02  回复 支持 反对
feizxiang3 发表于 2012-11-7 23:12
网上很多相关的资料,但大都是重复的~补充一些:
通过ps命令查看其带有defunct的标志。僵尸进程是一个早已 ...

正则表达式,总是记不住啊= =
回帖
B Color Image Link Quote Code Smilies
Command + Enter
快速回复 返回顶部 返回列表