如何linux的僵尸进程?
发布网友
发布时间:2022-04-25 17:11
我来回答
共1个回答
热心网友
时间:2023-10-22 01:05
在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
这样僵尸进程就可能被完全杀掉了。