如果我想尽可能小心和礼貌地终止进程,
我应该在终止命令中使用哪些信号,按什么顺序?
如果程序愿意的话,我想给程序任何形式的清理时间,所以SIGTERM
我想,仅仅发送一个命令就太苛刻了?
最后我会使用SIGKILL
(" -9
"),这很清楚。
但该从哪开始呢?SIGHUP
?哪些信号只是浪费时间?
相关信号可供参考,来自
man 7 signal
Signal Value Action Comment
──────────────────────────────────────────────────────────────────────
SIGHUP 1 Term Hangup detected on controlling terminal
or death of controlling process
SIGINT 2 Term Interrupt from keyboard
SIGQUIT 3 Core Quit from keyboard
SIGKILL 9 Term Kill signal
SIGPIPE 13 Term Broken pipe: write to pipe with no
readers
SIGTERM 15 Term Termination signal
答案1
SIGTERM
我认为这是要走的路。它在大多数情况下都有效。对于那些不起作用的情况,您SIGKILL
无论如何都必须这样做。
SIGTERM
为进程提供足够的机会来释放其所需的所有资源并彻底关闭。