「kill -SIGTERM」會停止「tail -f」嗎?

「kill -SIGTERM」會停止「tail -f」嗎?

正如標題所說,谷歌沒有給我任何東西,我無法在這台伺服器上測試它。

命令如下:

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

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

答案1

  • SIGTERM 向命令發送信號並告訴命令自行停止。如果由於終止而需要清理文件,則該命令可以做到這一點。
  • SIGKILL 向 init 系統發送訊號。命令本身甚至沒有被告知它將被殺死。

所以你可以同時使用;但 SIGTERM 應該是首選(它更優雅)。

「kill -SIGTERM」會阻止「tail -f」嗎?

是的,它會。在 Linux 上,tail 作用於 SIGTERM。

答案2

您甚至不必使用SIGTERM.tailSIGINTSIGQUIT。我不確定訊號之間是否有任何區別(都是特定於tail),但其中任何一個都會比 更好SIGKILL

測試也很容易:

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

相關內容