タイトルの通り、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