记录一次部署后java程序莫名消失的排查过程
场景:把java程序部署在liunx上,使用nohup java -jar xxx.jar &
脚本启动,但是过一段时间,程序进程没有了。
- 排查:网上大多数的说的是内存过大,被oom机制给killed了,我经过测试,在
/var/log/messages
系统日志中,并没有发现killed的操作,而且服务器内存和swap的大小挺大的,不应该存在内存不够的情况! 并且设置了进程不被oom机制影响,但是还是莫名消失,没有任何killed信息。注意:这里有一个原因影响了我的判断:nginx静态资源映射服务,一直可以使用,从而导致我一直认为只有我们自己的java程序没了 但是我在系统日志中发现了这样的错误信息,刚开始还以为没关系,但是这就是最终原因!!
- 网上百度这个错误
最后:然后我为了证明这个猜想,我服务启动后,手动重启了Linux服务器,发现服务没有了,nginx依然可以访问,可能nginx自启动还是咋滴,最终证明是服务器硬件原因导致服务器重启从而形成了服务异常消失