Ich arbeite an einer Anwendung, wo ich ein System-Shutdown erkennen muss. Allerdings habe ich keine zuverlässige Möglichkeit gefunden, eine Benachrichtigung zu dieser Veranstaltung zu erhalten.Wie erkennen Sie ausstehende Systemabschaltung unter Linux?
Ich weiß, dass beim Beenden, meine App ein Signal gefolgt von einem SIGKILL
erhalten wird. Ich möchte wissen, ob es eine Möglichkeit gibt, abzufragen, ob ein SIGTERM
Teil einer Abschaltsequenz ist?
Weiß jemand, ob es eine Möglichkeit gibt, das programmatisch abzufragen (C API)?
Soweit ich weiß, bietet das System keine andere Methode zur Abfrage eines bevorstehenden Herunterfahrens. Wenn das der Fall ist, würde das auch mein Problem lösen. Ich habe runlevels
auch versucht, aber Änderung in runlevels
scheinen sofort und ohne vorherige Warnungen zu sein.
Interessante Frage zu tun. Möchten Sie das Herunterfahren stoppen oder nur benachrichtigt werden? – ereOn
Ich möchte nur benachrichtigt werden. – 341008
Nun, ich habe aufgegeben. Ich habe beschlossen, jedes SIGTERM als eine Nachricht zu behandeln, die das Betriebssystem herunterfahren möchte. Meine (lame ??) Begründung ist, dass SIGTERMs Hauptzweck ist, Apps höflich darum zu bitten, sauber zu beenden, und es ist unwahrscheinlich, dass jemand mit genügend Privilegien ein SIGTERM ausstellt, wenn er nicht möchte, dass die App beendet wird. Auch wenn es kein Herunterfahren ist, sollte die App darauf hören. Das bringt mich zu einer anderen Frage. Was ist die Mindestzeit zwischen einem SIGTERM und einem SIGKILL in einer Shutdown-Sequenz? Ich weiß, dass es mit -t-Schalter konfiguriert werden kann, aber gibt es eine minimale Grenze? – 341008