我正在尝试在 Java 应用程序上获取 unix(solaris 和 linux)线程转储。
1)当java应用是tomcat web应用时, 使用 kill -3 ,转储转到 catalina.out 文件,因为这是标准输出。 kill -3 pid > td.out 不起作用。
2) 对于另一个 spring 独立 java 应用程序,我如何找到它的标准输出。 我用过了: kill -3 pid,我检查了我的应用程序日志,但我找不到任何东西。
请告知我如何确定 java 应用程序的标准输出并查看线程转储。
谢谢, B.
最佳答案
如果您使用的是 OpenJDK 或 Sun JDK 6 或更高版本,请尝试 bin 文件夹中的 jstack 命令。当由于某种原因将标准输出重定向到文件有问题时,这很有用。执行以下命令,传入 Java 进程 ID:
jstack -l JAVA_PID > jstack.out
关于java - 获取 Unix 线程转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19819020/