我有一个Java进程。我使用log4j进行日志记录。我已经在log4j.xml中指定了日志文件的位置和名称。日志记录工作正常。我对这里的kill -3日志有问题。
我尝试使用kill -QUIT <pid>/ killl -3 <pid>获取进程转储。我期望在log4j.xml中指定的日志文件中更新由kill -3生成的转储。
但它不会以这种方式发生。我需要转储到观察者线程状态。我不知道有任何其他方法可以获得正在运行的进程的进程转储。
发布于 2013-01-18 16:38:17
kill -3应该输出到标准输出,所以它应该在您的标准输出所在的位置。如果没有,您可以尝试使用-XX:LogFile JVM选项。
另一种方法是NPE建议的jstack。
另一种选择是使用jvisualvm -它将在其漂亮的图形用户界面中生成stackdump,您可以从那里复制它。
发布于 2013-01-18 16:34:13
我需要转储到观察者线程状态。我不知道有任何其他方法可以获得正在运行的进程的进程转储。
您可以使用jstack来实现这一点。
https://stackoverflow.com/questions/14394902
复制相似问题