Ich benötige Netzwerknachrichten, die gesendet werden, wenn ein Systemdienst abstürzt oder hängt (dh in den Status "Fehlgeschlagen" wechselt; ich überprüfe den Zustand mithilfe von WatchdogSec =). Ich bemerkte, dass neuere Systeme FailureAction = haben, sah dann aber, dass dies keine willkürlichen Befehle zulässt, sondern nur einen Neustart / Herunterfahren.
Insbesondere brauche ich eine Möglichkeit, eine Netzwerknachricht zu senden, wenn systemd feststellt, dass das Programm abgestürzt ist, und eine andere, wenn es feststellt, dass es hängt.
Ich hoffe auf eine bessere Antwort als "die Protokolle analysieren" und ich brauche etwas, das eine fast sofortige Antwortzeit hat, daher halte ich einen Polling-Ansatz nicht für gut. es sollte etwas sein, das durch das eintretende Ereignis ausgelöst wird.
Antworten:
System-Einheiten unterstützen OnFailure, das eine Einheit (oder mehr) aktiviert, wenn die Einheit ausfällt. Sie können so etwas wie setzen
Erstellen
[email protected]
Sie dann den Dienst, in dem Sie den erforderlichen Bezeichner verwenden können (wahrscheinlich möchten Sie mindestens% i), um das Skript oder den Befehl zu starten, der die Benachrichtigung sendet.Ein praktisches Beispiel finden Sie unter http://northernlightlabs.se/systemd.status.mail.on.unit.failure
quelle
notify%n.service
ist redundant und führt zu[email protected]
. Zweitens%i
sollte anstelle von verwendet werden%I
, oder alle Bindestriche im Namen werden in Schrägstriche umgewandelt.Nur meine Art zu benachrichtigen:
/etc/systemd/system/[email protected]
zu systemd hinzufügen:
Bei anderen Dienstleistungen fügen Sie hinzu:
Laden Sie die Konfiguration neu:
quelle
Ich bin auf dieses Dienstprogramm gestoßen, das dies zu bieten scheint: https://github.com/joonty/systemd_mon
quelle