|
|
可以用ps和grep命令寻找僵尸进程. j3 M; R4 e( j4 x, e) Q O0 N
' r5 v- I2 `3 w k! ?7 d9 g
ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'
5 ?) R' d( [7 D4 a% o7 V7 y) H% G: x: E. Q
命令选项说明:
- \8 Q6 V& D% @) t. D( P$ _
. \9 Z* n8 `' \, D# {( x1 b, ?- k-A 参数列出所有进程# {' T' W0 S' d- K) D
-o 自定义输出字段 我们设定显示字段为 stat(状态), ppid(进程父id), pid(进程id),cmd(命令)这四个参数
! R- Y9 |0 Q- |因为状态为 z或者Z的进程为僵尸进程,所以我们使用grep抓取stat状态为zZ进程
) _& t W- t4 K- F, K8 T- n. M8 _* ~# X2 v0 N6 q
运行结果参考如下, Q+ O9 U- G4 U& C1 K5 y
Z 12534 12339 /path/cmd: r. Y {* {, T
这时,我们可以使用 kill -HUP 12339来杀掉这个僵尸进程
$ H# \+ C6 C. U2 P, ]0 j1 C& `* E! P5 a' F" `7 P
运行后,可以再次运行
: f) A J2 Z2 f+ Bps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]' 4 }: ^1 l& c' w
来确认是否将僵尸进程杀死9 Z% L; Q% C _$ @
如果kill 子进程的无效,可以尝试kill 其父进程来解决问题,例如上面例子父进程pid是 12534,那么我们就运行" b" @" {) b1 z" y/ i, Q$ {, X
kill -HUP 12534来解决问题 |
|