2012-03-05 12 views
1

不會產生threaddump是否有殺-3的可能性/退出PID打印什麼,即一個空的線程轉儲?我們聽到了一位支持工程師的故事,並想知道是否有專家可以驗證。上殺-3

這是關於Java 6_26在RHEL 5

回答

2

我只在服務器重定向到stdout(如JBoss)時看到了這一點,並且stdout已被重定向到/ dev/null,因爲建立服務器的人認爲所有轉到stdout的內容都已轉到指定的日誌文件。

+0

請問這有什麼區別,如果我們重定向的命令本身的輸出到文件:殺-3 PID>轉儲 – 2012-03-05 16:27:30

+0

我記得,從重定向殺輸出-3沒有工作,我們不得不改變我們的啓動腳本(不再重定向) – 2012-03-05 16:58:43

+1

有點晚了,但我發現你可以使用'jstack'來做到這一點。 – 2012-03-12 18:08:04

1

JVM線程轉儲的某些服務器上的控制檯輸出重定向到一個日誌文件。對於Tomcat服務器,通常是Catalina.out。

0

我已經看到你在一個獨立的Java應用程序(甲骨文JDK 1.6.20+,Linux)的行爲描述,但我不能告訴如何始終如一地重現此問題。它可能在其中一個線程中出現了OutOfMemoryError,但我不確定。

我也覺得我得到的不只是一個空場,但該命令實際上凍結了,並沒有回我的殼,直到我在等待一段時間後,按下Ctrl + C。無論哪種方式,我敢肯定的jstack的行爲是完全一樣的kill -3。當它發生時,應用程序是如此糟糕,它沒有正常kill反應,只kill -9的工作就可以了。沒有重定向,在正常情況下,該應用程序反應爲kill -3,因爲它應該。