不使用JDK生成堆转储 - SIGQUIT到应用程序?

时间:2015-04-30 13:01:23

标签: java process heap dump

任何想法如何在没有JDK的情况下生成java heapdump? 我能够获取processid,但是我无法直接访问该机器,并且没有安装JDK。

  

您也可以使用JVM参数-XX:+ HeapDumpOnCtrlBreak   并发送一个SIGQUIT信号(-3为Unix杀死和Ctrl-Break为   Windows)到正在运行的Java进程 - 信号也将创建一个   heapdump而不中止JVM

有更简单的方法吗?以及如何向流程发送SIGQUIT?

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

如果您仍然可以通过SSH / telnet访问,则可以使用:

 kill -QUIT <pid>

正如你在报价中所描述的那样。

通过JMX访问应用程序的其他选项,即jconsole或jvisialvm

要使用JMX,您需要通过应用程序的命令行启用JMX