我知道我们可以使用 killall -3 java 来获取threaddump。
我的问题是: 如果正在运行多个java进程,那么进行哪个进程的线程转储? 或者是所有进程都采用了线程转储?
答案 0 :(得分:0)
线程转储不是"采取"在你描述的情况下。 Java JVM通常通过将转储写入stdout来响应信号。它可能被捕获和存储,但这并没有改变基本原则。
因此,如果您愿意,您可以发信号通知主机上的所有JVM以生成线程转储。
在许多情况下,使用像jstack
这样的实用程序来收集线程转储会更有效率,因为它可以更好地控制实际写入转储的位置。