java:当多个进程 运行 时,killall -3 如何工作?

java: how killall -3 works when multiple processes are running?

我知道我们可以使用 killall -3 java 来获取线程转储。

我的问题是: 如果多个 java 进程是 运行,哪个进程的线程转储被获取? 还是对所有进程进行线程转储?

线程转储不是"taken"您描述的情况。 Java JVM 通常通过将转储写入标准输出来响应信号。它可能会被捕获和存储,但这不会改变基本原则。

因此,如果您愿意,您可以向主机上的所有 JVM 发出信号以生成线程转储。

在许多情况下,使用像 jstack 这样的实用程序来收集线程转储会更有效率,因为它可以更好地控制转储的实际写入位置。