linux系统管理之僵尸进程

前段时间面试,简历上写着熟悉linux系统管理,面试官便问,如果系统很卡,一般你会怎么处理?
我说一般会先top查看是否有阻塞进程占cpu,然后kill掉。再不行,就重启。。
他又问僵尸进程和孤儿进程的区别,如何杀死僵尸进程。。我本来以为跟刚才那道题不相关,直到今天才知道关系很大。。
今天编代码的时候,无意中产生了僵尸进程,zombie!!
然后系统真的很卡..好了,今天的问题是如何杀死僵尸进程,高手帮忙解答。。感兴趣的同学欢迎学习讨论。
第一次发贴~
欢迎顶帖~
孤儿进程是指父进程先于子进程结束的子进程,系统自动把这样的进程过继给init进程,然后init为相应的子进程调用wait函数。
僵尸进程是指在父进程没有wait之前就已经结束了,这样就导致无法释放内核中保存的该子进程的一些信息,造成资源的浪费。
可以用ps查看进程,状态为’Z’的是僵尸进程。
杀死僵尸进程一劳永逸的方法就是杀掉它的父进程,这样它就变成了一个孤儿进程,然后就过继给init进程,由init进行清理。

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

thx for answering~
It’s helpful.

本帖最后由 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进程为其收尸。。

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

正则表达式,总是记不住啊= =

未经允许不得转载:软院网 RuanYuan.Net » linux系统管理之僵尸进程

赞 (0)

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
软院网 RuanYuan.Net