在Linuxclosures时,在杀死进程之前configurationSIGTERM处理程序超时的位置

我试图debugging一个java shutdownhook问题。 这些closures钩子使用SIGTERM +看门狗线程。 我怀疑在看门狗线程中的错误或在我的序列化过程中的错误,但不能消除第二种可能性,因为我无法debugging(即使写入文件),所以我想增加超时debugging,但我不知道这个价值在哪里。

编辑:我在Ubuntu的

关于默认的SIGTERM超时,

在Ubuntu的Upstart,显然是5秒 。

对于Red Hat家族的killproc ,显然至少有1 + 3 = 4秒 。 目前还不清楚这个功能在新版本中是否有所改变。

这个答案在社区wiki中。

根据我的Fedora 12系统上的/etc/rc.d/rc0.d/S01halt ,这是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)。