【发布时间】:2018-03-12 23:15:23
【问题描述】:
我会尝试监视在线程上执行的操作,例如tail 命令。它应该打印线程的stackTrace(其线程ID已知)。
我可以打印当前在 java 进程下运行的所有线程的堆栈跟踪,如下所示
pid=$(ps -ef |grep 'catalina' | grep java | awk ' { print $2 } ');
eval '/home/jdk/bin/jstack -F $pid' > stack_trace.txt
但我需要打印线程 id 已知的线程的堆栈跟踪。
非常欢迎在这方面提供任何帮助。在此先感谢:)
【问题讨论】:
-
好吧,我假设您已经在文件 stack_trace.txt 中拥有您需要的信息,所以再挖掘一下,然后您就会得到答案:)
-
@KrassiEm 该文件中已经存在。但是活动线程的数量太大 - 它只是获取当前在 java 进程下运行的所有线程......所以,如果我可以单独获取当前线程的堆栈跟踪或实时堆栈跟踪,那将是一个很大的解脱(就像尾巴一样) - 进行积极的变化..
-
您能否在 github 上发布文件示例,前提是您允许。似乎一旦文件在那里,应该使用一些正则表达式解析来提取您需要的东西。我确信一些 grep、awk、perl 代码距离解决方案只有一步之遥。
标签: multithreading bash stack-trace jstack printstacktrace