linux java defunct
还原现场
现象:
- sonar关闭后重启失败
- 尝试重新启动,依旧失败;
- es报错,对某个目录lock拿不到
- 怀疑进程未关闭;但是sonar/es相关进程均无
- 开始查java进程,如下
1 | ps -ef | grep defunct |
1 | UID PID PPID C STIME TTY TIME CMD |
顾名思义,这是一个弃用的进程。
既然存在进程,那么很可能占用了某些资源。
继续排查:
- 机器上无其他服务
- 查资料 - defunct
一般产生原因:
使用jdk是预编译,与本地环境不兼容。例如,某个.so动态链接库文件不一致等等。
解决方式:
下载jdk src源码,本地编译
处理方式:
- 尝试kill -9 pid
- 重启(必杀)