Wie der Befehl systemd stop tatsächlich funktioniert

8

Ich verwende einen Systemd-Dienst, der einen Prozess aufruft, wenn er "gestartet" wurde (z. B. $ systemctl start test.service). Nach dem Entwurf bleibt der Prozess für immer in einer Schleife, wir können das Vorhandensein des Prozesses mit dem Befehl "ps" sehen. Wir haben auch gesehen, dass der Prozess (wie vorgesehen) für den Befehl systemctl stop beendet wird. Unsere Anforderung ist jedoch, dass wir einige sichere Abschaltvorgänge innerhalb des Prozesses durchführen wollen, bevor sie beendet werden. Aber ich bin nicht sicher, wie man einen Systemd-Haltvorgang innerhalb des Prozesses feststellt.

Sendet ein systemctl-Befehl test.service das Signal SIGKILL oder SIGTERM, um den Prozess zu beenden? Wie kann ich eine systemctl stop-Operation innerhalb eines Prozesses erkennen?

    
user3805417 23.03.2017, 14:04
quelle

1 Antwort

10

Standardmäßig wird ein SIGTERM gesendet, gefolgt von 90 Sekunden Wartezeit gefolgt von einem SIGKILL.

Das Töten von Prozessen mit systemd ist sehr anpassbar und gut dokumentiert.

Ich empfehle alle man systemd.kill zu lesen sowie über < a href="https://www.freedesktop.org/software/systemd/man/systemd.service.html"> ExecStop = in man systemd.service als das Dokument alle Optionen.

    
Mark Stosberg 23.03.2017 14:37
quelle

Tags und Links