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?
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.
Tags und Links systemd