记录一次kill9也杀不死的进程
今天同事使用jmeter压测订单模块,一会儿发现数据库访问不了,登录服务器上看到数据库服务器负载150, 我擦。
然后一看进程,有很多jmeter的进程,明显不正常,随便拿一个使用kill -9
也杀不死
最后网上搜索一圈,得知此进程已经变为僵尸进程。只能杀其父进程。
首先使用 ps aux | grep pid
查看结果:
1
2
3
4
[rsrlogin@xuid17 ~]$ ps aux | grep 'Z'
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
rsrlogin 2761 1.6 0.0 0 0 pts/1 Z 14:22 0:09 [java] <defunct>
rsrlogin 4797 0.0 0.0 112812 960 pts/2 S+ 14:31 0:00 grep --color=auto Z
如果state 为 ‘Z’ 就代表为僵尸进程;
接下来使用ps -ef | grep pid
查看结果:
1
2
3
4
[rsrlogin@xuid17 ~]$ ps -ef | grep 4358
rsrlogin 4358 4334 4 14:29 pts/1 00:00:09 /usr/local/jdk1.8.0_171/bin/java -server -XX:+HeapDumpOnOutOfMemoryError -Xms256m -Xmx256m -XX:MaxMetaspaceSize=128m -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:G1ReservePercent=20 -Djava.security.egd=file:/dev/urandom -Duser.language=en -Duser.region=EN -jar ./ApacheJMeter.jar -n -t 订单自动化.jmx
rsrlogin 5008 2490 0 14:32 pts/2 00:00:00 grep --color=auto 4358
root 24358 2 0 13:13 ? 00:00:00 [kworker/1:2]
这里返回的第一列(4358)是pid列,第二列(4334)是ppid列。
然后使用kill -9 4334
即可正常结束进程。
This post is licensed under CC BY 4.0 by the author.