【发布时间】:2016-04-26 14:34:01
【问题描述】:
我想在我编写的日志收集脚本中自动创建一个线程转储。
我知道可以使用 jstack 或 kill -3 生成线程转储。运行日志收集脚本的客户只会安装 JRE,因此 jstack 不是一个选项。
如果我使用 jstack 和 install4j 启动器创建的 JVM 的 pid,我会得到线程转储......但是使用相同的 pid 调用 kill -3 不会产生任何输出。我目前正在使用 install4j 启动器配置将 stderror 和 stdout 指向文件。
这是一个配置了服务选项的 linux 启动器。
FWIW...我尝试不引导输出并将我的应用程序作为控制台程序而不是服务运行,但这些都不允许“kill -3”工作。
我正在使用 install4j 6.0
最后,我不想使用 -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=dump.log,因为它可能会产生未知的开销。
任何帮助将不胜感激!
【问题讨论】: