在 Unix 系统上运行 kill -QUIT
将触发线程转储。我知道这一点,因为我已经这样做了数百次。
但是,另一位开发人员告诉我,他已经看到这种情况“导致 JVM 崩溃”,并且使用 twiddle 或 JMX API“更安全”。
我正在努力在网上寻找任何关于 kill -QUIT
行为的引用。
任何人都可以确认它实际上可以杀死 java 进程/导致 JVM 退出吗?
(显然,如果有人没有正确输入“-QUIT”,则执行此操作的一种方法是:-))
最佳答案
12 年来,我从未见过 kill -QUIT
导致 JVM 崩溃。但正如 Disco 3 所说,如果您在 JVM 陷入困境时执行线程转储(这是您通常执行线程转储的时间),它可能(可能?)因 OutOfMemoryError
崩溃。但在这种情况下,任何事情都可能导致 JVM 崩溃。我会毫不犹豫地使用 kill -QUIT
,但您可能会发现 jstack
更有用,因为它会将线程转储转储到您的 stdout 而不是比 JVM 的。
关于java - "kill -QUIT"是否真的杀死了 JVM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21880117/