Event Control / Herunterfahr Skript

Ich habe das Gefühl, dass außer wenn ich zur normalen Laufzeit des Systems (Windows) manuell den IPS-Dienst beende, das Herunterfahr-Skript entweder nicht ausgeführt wird, oder es wird ausgeführt aber kann nichts mehr machen.

Bei mir tut das Shutdown-Skript folgende Dinge, die bei Systemneustarts wie Windows Update usw. nicht klappen, aber sie klappen wenn ich im Tray z.B. auf „Dienst beenden“ gehe.

  • es wird eine Datei angelegt, die anschließend im Startup-Skript erkannt und gelöscht wird. Die dem Startup-Skript quasi sagt dass der letzte Shutdown „graceful“ war.
  • es geht eine Mail raus, dass IPS heruntergefahren wird.

Frage: Ist das so gewollt, dass das Skript nur beim händischen Beenden des Dienstes ausgeführt wird? Muss ich anderweitig, also außerhalb von IPS auf Systemneustarts reagieren? Wie habt ihr das gelöst?

Würde z.B. auch gern auf Terminals im Haus irgendwas anzeigen können von wegen „Bitte warten, das System startet gerade neu“ oder so.

Windows 10 macht ja mitunter Zwangsupdates, das sehe ich dann nur daran dass mir das Startup-Skript eine Mail schickt „IPS wurde wegen eines Fehlers neu gestartet“. Die Meldung kommt, weil er halt startet und die Datei nicht findet, die auf ein sauberes Abschalten von IPS (also auf ein zuvor ausgeführtes Herunterfahrskript) hindeutet.

Ich muss dann im Windows-Systemprotokoll nachsehen ob das ein „absichtlicher“ Neustart wegen Windows-Update war, oder ein BSOD. Oder halt ein Crash von IPS (der Service ist auch so konfiguriert dass er wieder gestartet wird) :frowning:

In letzteren beiden Fällen wäre die Mail mit dem Hinweis auf den Fehler gerechtfertigt und es wäre klar dass ich dann nachgucken muss. Aber wenn das System aus einem vernünftigen Grund sauber herunter gefahren ist, sollte doch eigentlich nicht einfach der Dienst gekillt werden oder?

Doch, Windows killt einfach Dienste welche zu lange brauchen.
Leider kann ich dir aus dem Kopf nicht sagen wie der RegKey ist für Windows 10.
Früher war es WaitToKillServiceTimeout unter HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control
Ob der immer noch gilt, weiß ist gerade nicht.
Michael

Danke für den Hinweis.

Dort war jetzt 5 Sekunden eingetragen, ich habe daraus mal 30 gemacht. Neugestartet zum Test, leider mit gleichem Ergebnis. Keine der Aktionen des Shutdown-Skripts hat stattgefunden :-/

Ich habe beim Logging die ganzen Spezialschalter aus Performancegründen aus. Gibt es einen Schalter, um so Sachen wie „Dienst beendet sich“ zu loggen?

Weil momentan hört das Log einfach irgendwo auf ohne dass erkennbar wäre warum.

Wenn noch nicht einmal der Eintrag mit dem Shutdown Request oder so auftaucht, dann wird der Prozess einfach getötet.
Schau dir ein Log vom normalen beenden des Dienstes an.
Die Zeit zwischen Beginn Ende Shutdown brauchst du mindestens.
Mein IPS braucht unter Windows ca 20 Sekunden. Unter Ubuntu ca 2 Minuten :open_mouth:
Michael