易陆发现互联网技术论坛

 找回密码
 开始注册
查看: 4581|回复: 2
收起左侧

使用top之后发现有zombie进程

[复制链接]
发表于 2018-1-10 22:21:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?开始注册

x
使用top之后发现有zombie进程
9 z2 k5 H& u  ~) J查看僵尸进程2 \- V! h) P5 U4 v8 E
ps -A -o stat,ppid,pid,cmd|grep -e "^[Zz]"   D& U" b# A! g' Q

3 U, r5 {" Z  s6 s* jZ     8120  8137 [sudo] <defunct>3 |( C( w' z8 g! R( b) z  i
杀掉僵尸进程
" e3 T% V" N8 p6 |7 p5 ? kill -9 8120) Y" f( `5 D7 O/ E7 a
4 K0 S7 d) V+ y6 R5 s
- \" L) S5 M% C* `3 l. E

可以用ps和grep命令寻找僵尸进程

ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'

命令选项说明:

-A 参数列出所有进程1 _2 g  O+ R8 L" a: c4 X7 G
-o 自定义输出字段 我们设定显示字段为 stat(状态), ppid(进程父id), pid(进程id),cmd(命令)这四个参数7 o7 O0 O1 E3 _1 P: i" }) D! g: e
因为状态为 z或者Z的进程为僵尸进程,所以我们使用grep抓取stat状态为zZ进程

运行结果参考如下
" K9 e1 z" I; Q: [3 `+ R- BZ 12334 12339 /path/cmd2 W* S; E3 B0 S1 ?! Q! ~
这时,我们可以使用 kill -HUP 12339来杀掉这个僵尸进程
% @: L+ u; z; \4 S% k运行后,可以再次运行ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'来确认是否将僵尸进程杀死
6 a. E% O8 f6 j4 D, \( f9 ]: w$ o) [如果kill 子进程的无效,可以尝试kill 其父进程来解决问题,例如上面例子父进程pid是 12334,那么我们就运行, A- c3 P2 o( r) F/ n( a; y
kill -HUP 12334来解决问题


- \- S$ |* w0 E! I% @. p, q
 楼主| 发表于 2019-6-5 18:09:11 | 显示全部楼层
解决方法:
' W5 M; [: k$ h: D7 U- K1 X& e2 H" L/ W% \- S' h% E1 I- B
  #ps -A -o stat,ppid,pid,cmd |grep -e "^[Zz]"    //先查看具体进程:- L0 J7 C3 B9 d( ]- F  C# U. ~4 E+ l
  #kill -9 pid号         //杀死z进程(这些动作是比较危险的,希望在真正的服务器上面慎用!!!)
 楼主| 发表于 2019-6-5 18:09:23 | 显示全部楼层
假若你的z进程比较多,可以编写个小小的脚本,下面是参与网上的1 Z( A& L8 |9 z8 X2 @

' c2 G  r' ]6 U1 e8 {) x; y  a8 b#ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]' | awk '{print $2}' | xargs kill -9
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

北京云银创陇科技有限公司以云计算运维,代码开发

QQ|返回首页|Archiver|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )点击这里给我发消息

GMT+8, 2026-4-8 21:31 , Processed in 0.055177 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

快速回复 返回顶部 返回列表