正如標題所說,谷歌沒有給我任何東西,我無法在這台伺服器上測試它。
命令如下:
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
.tail
聽SIGINT
也SIGQUIT
。我不確定訊號之間是否有任何區別(都是特定於tail
),但其中任何一個都會比 更好SIGKILL
。
測試也很容易:
$ tail -f /dev/null > /dev/null &
[1] 26599
$ kill -SIGINT $!
[1]+ Interrupt tail -f /dev/null > /dev/null