如何linux的僵尸进程?

如题所述

第1个回答  2021-02-01
在linux中,利用命令ps,可以看到有标记为Z的进程就是僵尸进程。
方法1:
ps -A -o stat,ppid,pid,cmd |grep -e "^[Zz]"
方法2:
ps -ef|grep defunc
注:S(state of the process )
  
O:进程正在处理器运行 
  
S:休眠状态(sleeping)
  
R:等待运行(runable)   
I:空闲状态(idle)
  
Z:僵尸状态(zombie)   
  
T:跟踪状态(Traced)
  
B:进程正在等待更多的内存页

C:cpu利用率的估算值(cpu usage)
方法1:处理僵尸进程
kill -18 PPID ###(PPID是其父进程)
这个信号是告诉父进程,该子进程已经死亡了,请收回分配给他的资源。
方法2:终止父进程
 如果方法1不能终止,可采用终止其父进程的方法(如果其父进程不需要的话)父进程死后,僵尸进程成为”孤儿进程”,过继给1号进程init,init始终会负责清理僵尸进程.它产生的所有僵尸进程也跟着消失。
先看其父进程又无其他子进程,如果有,可能需要先kill其他子进程,也就是兄弟进程。方法是:
  kill –15 PID1 PID2 ####(PID1,PID2是僵尸进程的父进程的其它子进程)。
###然后再kill父进程:
kill –15 PPID
这样僵尸进程就可能被完全杀掉了。
相似回答
大家正在搜