正如标题所说,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
您甚至不必使用SIGTERM
。tail
监听SIGINT
和SIGQUIT
。 我不确定信号之间是否有任何差异(它们都是特定于tail
)但其中任何一个都比 更好SIGKILL
。
测试起来也相当容易:
$ tail -f /dev/null > /dev/null &
[1] 26599
$ kill -SIGINT $!
[1]+ Interrupt tail -f /dev/null > /dev/null