java服务器进程不能完全退出

时间:2015-01-23 18:03:14

标签: java jruby

我有一个init.d脚本,它启动/停止在java 8上运行的基于jruby的服务器。它首先使用kill进行了很好的方式,然后在一段时间后它回退到kill -9。我可以从我的日志中看到kill触发了正确的关闭钩子,最终它调用了System.exit(0)。此时,该过程应该死亡,除非它没有。

我实际上在我的init.d脚本中使用循环进行了轮询,无论该进程是否仍然存在(是)并尝试使用kill -QUIT使其记录线程转储。后者在几秒钟后停止工作,但是这个过程一直僵尸直到我杀死-9它。

我的问题:如何确定导致此问题的原因?至少一个线程转储会告诉我我的代码的哪一部分是阻塞的,但它似乎处于不再有效的状态,但该进程不会退出。

1 个答案:

答案 0 :(得分:0)

Joe建议使用Runtime.getRuntime().halt(int)。感谢