100 秒是脚本在发出终止信号后等待进程停止的时间,然后再用kill -9. 仅仅因为该过程快速停止,并不意味着它不是完全关闭。
从 catalina.sh 帮助部分:
echo " stop Stop Catalina, waiting up to 5 seconds for the process to end"
echo " stop n Stop Catalina, waiting up to n seconds for the process to end"
echo " stop -force Stop Catalina, wait up to 5 seconds and then use kill -KILL if still running"
echo " stop n -force Stop Catalina, wait up to n seconds and then use kill -KILL if still running"
Run Code Online (Sandbox Code Playgroud)
请注意等待最多 n 秒的措辞……该进程立即发出信号,并且脚本在发送信号之前最多等待n秒让 PID 消失kill -9。请注意,catalina.sh 脚本每次会休眠 1 秒,但仅在它发送初始关闭信号之后。
以下是脚本中的相关行,向您显示正在发生的事情:
一般来说:
kill -15向进程发送一个,这是一个正常的、优雅的关闭。现在由 JVM 开始其终止序列。kill -0向进程发送 a以检查它是否还活着。如果还活着,则休眠 1 秒并再次检查。重复此操作,直到 a) 进程不再存在,或 b) 延迟参数(在您的情况下为 100 秒)已经过去。-force参数,则脚本最后一次尝试kill -9向 JVM发送信号。这个信号实际上不能由 JVM 处理,操作系统本身会强制立即关闭进程(即非正常关闭)。请注意,所有这一切都立即发生,没有任何延迟。如果你想在尝试上面的关闭序列之前有一些人为的暂停,你应该sleep在调用 catalina.sh 之前使用:
sleep 100 && catalina.sh stop
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9303 次 |
| 最近记录: |