2016-04-27 12 views
4

Ich möchte einen Daemon in Python schreiben, der über Systemd gestartet wird.Systemd Daemon in Python mit Watchdog-Unterstützung

Ich möchte Type=notify verwenden, auf diese Weise muss ich nicht die doppelte Gabel Magie tun.

Nach der Dokumentation:

Die Referenzimplementierung für diese Meldung durch libsystemd-daemon.so

vorgesehen

... wie dies zu tun mit Python?

+0

Möglicherweise verwandt: https://www.freedesktop.org/software/systemd/python-systemd/daemon.html http://stackoverflow.com/questions/13069634/python-daemon-and-systemd-service –

+0

@ Robᵩ Die Frage, die du erwähnst, löst meine Frage nicht, da sich meine Frage auf einen Daemon mit ** Watchdog ** -Support bezieht. Wenn mein Daemon in einer Endlosschleife hängt, möchte ich, dass Systemd weiß, dass der Dienst nicht antwortet. Ohne Watchdog Systemd Dinge ist mein Service solange am Laufen, wie der Prozess läuft. – guettli

Antwort

5

Wahrscheinlich könnten Sie sdnotify Python-Modul verwenden, die eine reine Python-Implementierung von Protokoll ist. Tatsächlich ist das Protokoll ziemlich einfach, so dass die Modulimplementierung ziemlich kurz ist.

Um Watchdog-Maschinen zu verwenden, sollten Sie WatchdocSec=<smth> zu der Einheitendatei hinzufügen und dann WATCHDOG=1 Nachrichten regelmäßig von Ihrem Dienst senden. Überprüfen Sie auch Restart= Option.

+0

Schön, das Paket kann über Pip installiert werden. Vielen Dank. – guettli

+0

So habe ich es vor einer Weile entdeckt :). 'pip search' ist sehr praktisch. – user3159253