如何查找僵尸进程

在linux系统中,进程有如下几种状态:

D = 不可中断的休眠

I = 空闲

R = 运行中

S = 休眠

T = 被调度信号终止

t = 被调试器终止

Z = 僵尸状态

可通过top命令来查看系统进程和它的当前状态。

通过如下ps命令就可以列举僵尸进程,得到它们的进程 ID

ps ux | awk ‘{if($8==”Z”) print}’

ps ux 命令输出的第 8 列显示了进程状态。上述命令将会打印所有处在 Z+ 状态(表示僵尸状态)的进程。

或者通过如下命令查看僵尸进程:

ps -ef | grep defunct

要想成功杀死僵尸进程,需要对其父进程执行kill命令,第四列是父进程的PID,第十列是子进程状态(显然您要查找处于Z状态的PID),第十三列是子进程。使用第四列中的父进程PID,现在可以杀死父进程,它的僵尸子进程也将消失。除非父PID为1,在这种情况下需要重新启动。

ps -xal | awk ‘{ print $4 ” ” $10 ” ” $13 }’ | sort -n