java - "kill -QUIT"是否真的杀死了 JVM?

标签 java unix

在 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/

相关文章:

java - 如何调试 org.thymeleaf.exceptions.TemplateInputException?

linux - Unix cat 命令问题

linux - 如何在 linux 中打印另一个用户的当前工作目录?

c++ - 调试器如何窥探另一个进程的内存?

java - Spring:分离的实体传递到持久化

Java:在空间中将字符串剥离到数组的方法?

java - 如何从 JTextField 中获取值并将其移至 Int 变量中

Java renameTo Files Showed 0 File Size 然后消失了......Windows仍然保留空间

bash - Unix 循环变量

c++ - 将 SIGINT 发送到守护进程