2010-06-30 107 views
2

我試圖調試java shutdownhook問題。這些關閉鉤子使用SIGTERM +一個看門狗線程。我懷疑看門狗線程中的錯誤或者序列化過程中的錯誤,但無法消除第二種可能性,因爲我無法調試(即使寫入文件),所以我想增加調試超時,但我不知道這個價值在哪裏。在關閉Linux時關閉SIGTERM處理程序的超時配置位置

編輯:我在Ubuntu

回答

1

關於默認SIGTERM超時,

對於新貴在Ubuntu中,它顯然是5 seconds

對於在紅帽家族中的killproc,顯然至少有1 + 3 = 4 seconds。目前還不清楚這個功能是否在新版本中發生了變化。

此答案位於社區wiki中。

1

根據/etc/rc.d/rc0.d/S01halt我的Fedora 12系統上,它的2個秒時:

kill_all $"Sending all processes the TERM signal..." -15 $OMITARGS 
# No need to sleep and kill -9 if no processes to kill were found 
if [ "$?" == 0 ]; then 
    sleep 2 
    kill_all $"Sending all processes the KILL signal..." -9 $OMITARGS 
fi 

在Ubuntu(10.04,至少),該代碼是在/etc/init.d/sendsigs。在發送SIGKILL到任何剩餘的信息之前,它最多等待10秒鐘以終止進程。

儘管嘗試自行關閉應用程序(kill 12345,其中12345是應用程序的PID)可能會更好。

+0

殺死不會觸發錯誤的代碼。我有興趣在查殺前調試超時,所以我需要更多時間(可能還有一個遠程調試器)。 無論如何,這個路徑在Ubuntu中不存在。 – i30817 2010-06-30 21:29:11

+0

有一個類似的文件: 但它不使用的睡眠都: ... \t log_action_msg 「現在停止」 \t停止-d -f $ netdown $關機$ hddown ... 我不知道alt命令,如何引入aditional delayy,但同時通知應用程序事情正在關閉。 – i30817 2010-06-30 21:34:10

+0

類似的文件是:/etc/rc0.d/S90halt – i30817 2010-06-30 21:34:42