“kill -SIGTERM”会停止“tail -f”吗?

“kill -SIGTERM”会停止“tail -f”吗?

正如标题所说,Google 没有给我任何东西,我无法在此服务器上进行测试。

命令如下:

tail -f <file> | fgrep --line-buffered "string" | sed -u 's/stuff//g' >> output.log

我是否需要使用kill -SIGTERM <PID>kill -SIGKILL <PID>停止tail -f

答案1

  • SIGTERM 向命令发送信号并告诉命令自行停止。如果由于 kill 而需要清理文件,该命令可以执行此操作。
  • SIGKILL 向 init 系统发送信号。命令本身甚至不会被告知它将被终止。

因此您可以同时使用两者;但应该优先使用 SIGTERM(它更加优雅)。

“kill -SIGTERM”会停止“tail -f”吗?

是的,它会。在 Linux 上,tail 作用于 SIGTERM。

答案2

您甚至不必使用SIGTERMtail监听SIGINTSIGQUIT。 我不确定信号之间是否有任何差异(它们都是特定于tail)但其中任何一个都比 更好SIGKILL

测试起来也相当容易:

$ tail -f /dev/null > /dev/null &
[1] 26599
$ kill -SIGINT $!
[1]+  Interrupt               tail -f /dev/null > /dev/null

相关内容