Stoppt „kill -SIGTERM“ „tail -f“?

Stoppt „kill -SIGTERM“ „tail -f“?

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. tailhört auch auf SIGINTund 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

verwandte Informationen