2010-06-30 101 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