kill -3 / quit PID是否有可能不打印任何内容,即空的线程转储?我们从一位支持工程师那里听到了一个故事,想知道一些专家是否可以验证。
这是在RHEL5上的Java 6_26上
发布于 2012-03-06 00:12:01
我只在服务器重定向到标准输出(如JBoss )时看到这种情况,并且标准输出被重定向到/dev/null,因为无论是谁设置服务器,都认为所有要发送到标准输出的内容都已经发送到一个指定的日志文件中。
发布于 2012-03-06 00:05:02
某些服务器上的JVM线程转储的控制台输出被重定向到日志文件。在Tomcat Server中,它通常是Catalina.out。
发布于 2012-03-06 03:32:05
我见过您在独立的Java应用程序(Oracle JDK 1.6.20+、Linux)中描述的行为,但我不知道如何始终如一地再现这种行为。它可能是在某个线程的OutOfMemoryError
之后,但我不再确定了。
我还认为我得到的不仅仅是一个空转储,而是命令实际上冻结了,直到我在等待一段时间后按下ctrl+C才返回到shell。无论哪种方式,我确信jstack
的行为与kill -3
的行为完全相同。当它发生时,这个应用程序的状态是如此糟糕,以至于它对正常的kill
没有反应,只有kill -9
在它上面工作。没有重定向,在正常情况下,应用程序对kill -3
做出了应有的反应。
https://stackoverflow.com/questions/9569723
复制相似问题