如何kill掉Ubuntu的僵死进程

做spark应用时,每提交一个应用就会多出sparksubmit进程

$ jps
3552 SparkSubmit
2164 SparkSubmit
3223 SparkSubmit
5358 Jps

当我们想kill掉这个进程时,

$ kill -9 3552
$ kill -9 2164
$ kill -9 3223

再次用jps查看进程,发现SparkSubmit进程杀不掉

$ jps
3552 SparkSubmit
2164 SparkSubmit
3223 SparkSubmit
5358 Jps

原来是因为SparkSubmit是一个僵死(Zombie)进程,用如下命令查看僵死进程

$ ps aux | grep 'Z'

具体操作如下: 

$ ps aux | grep 'Z'
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
hadoop    2164  0.5  0.0      0     0 pts/0    Z    09:01   0:24 [java] <defunct>
hadoop    3223  0.3  0.0      0     0 pts/0    Z    09:26   0:11 [java] <defunct>
hadoop    3552  0.6  0.0      0     0 pts/0    Z    09:37   0:16 [java] <defunct>
hadoop    5341  0.0  0.0  14224   968 pts/0    S+   10:19   0:00 grep --color=auto Z

$ jps
3552 SparkSubmit
2164 SparkSubmit
3223 SparkSubmit
5358 Jps

$ ps aux | grep 'Z'
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
hadoop    2164  0.5  0.0      0     0 pts/0    Z    09:01   0:24 [java] <defunct>
hadoop    3223  0.3  0.0      0     0 pts/0    Z    09:26   0:11 [java] <defunct>
hadoop    3552  0.6  0.0      0     0 pts/0    Z    09:37   0:16 [java] <defunct>
hadoop    5370  0.0  0.0  14224   936 pts/0    S+   10:21   0:00 grep --color=auto Z

通过以上查询只有3个僵死进程PID是固定的,就是jps的看到的三个SparkSubmit进程(2164/3553/3223)

 

那如何kill掉僵死(Zombie)进程呢?

上网查询有的说可以重启Ubuntu,或者等待很长时间后内核将其清除

如果不想重启Ubuntu,又要马上清除僵死(Zombie)进程怎么办呢?

方法是有的:找到僵死进程的父进程,然后kill掉父进程即可

 

操作如下:

查询僵死2146进程的进程关系,发现2164的父进程是2148
$ pstree -p -s 2164
systemd(1)───sshd(958)───sshd(2109)───sshd(2128)───bash(2131)───python3(2148)───java(2164)


kill掉父进程
$ kill -9 2148

再次查看僵死进程,没有了2164进程
$ ps aux | grep 'Z'
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
hadoop    3223  0.3  0.0      0     0 pts/0    Z    09:26   0:11 [java] <defunct>
hadoop    3552  0.5  0.0      0     0 pts/0    Z    09:37   0:16 [java] <defunct>
hadoop    5450  0.0  0.0  14224   936 pts/0    S+   10:26   0:00 grep --color=auto Z
[1]   Killed                  pyspark  (wd: ~)
(wd now: ~/soft/spark)

再kill掉其他两个僵死进程

$ pstree -p -s 3223
systemd(1)───sshd(958)───sshd(2109)───sshd(2128)───bash(2131)───python3(3207)───java(3223)

$ kill -9 3207

$ pstree -p -s 3552
systemd(1)───sshd(958)───sshd(2109)───sshd(2128)───bash(2131)───python3(3537)───java(3552)
$ kill -9 3537


$ ps aux | grep 'Z'
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
hadoop    5522  0.0  0.0  14224  1000 pts/0    S+   10:28   0:00 grep --color=auto Z

 

参考:https://www.cnblogs.com/gisvito/p/3757317.html

 

完成!enjoy it!

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值