Wie der Titel schon sagt, gibt mir Google nichts und ich kann es auf diesem Server nicht testen.
Der Befehl lautet wie folgt:
tail -f <file> | fgrep --line-buffered "string" | sed -u 's/stuff//g' >> output.log
Muss ich ein verwenden kill -SIGTERM <PID>
oder kill -SIGKILL <PID>
stoppen tail -f
?
Antwort1
- SIGTERM sendet ein Signal an den Befehl und weist diesen an, sich selbst zu stoppen. Wenn aufgrund des Kills Dateien bereinigt werden müssen, kann der Befehl das tun.
- SIGKILL sendet ein Signal an das Init-System. Dem Befehl selbst wird nicht einmal mitgeteilt, dass er beendet wird.
Sie können also beides verwenden, aber SIGTERM sollte bevorzugt werden (es ist eleganter).
Stoppt „kill -SIGTERM“ „tail -f“?
Ja, das wird es. Unter Linux wirkt Tail auf SIGTERM.
Antwort2
Sie müssen nicht einmal verwenden SIGTERM
. tail
hört auch auf SIGINT
und SIGQUIT
. Ich bin nicht sicher, ob es einen Unterschied zwischen den Signalen gibt (alles ist spezifisch für tail
), aber jedes davon wäre besser als SIGKILL
.
Das Testen ist auch ganz einfach:
$ tail -f /dev/null > /dev/null &
[1] 26599
$ kill -SIGINT $!
[1]+ Interrupt tail -f /dev/null > /dev/null