Was ist der richtige Weg, um ein Python-Skript als Daemon (Dienst) in Raspbian (oder Debian) auszuführen?

9

Ich möchte meinen Pi als Heimthermostat verwenden, wobei der Regelkreis in einem Python-Skript ausgeführt wird. Ich möchte es als Daemon auf Raspbian (Debian) beim Start ausführen.

Es gibt ein Beispiel für ein Bash-Skript in /etc/init.d/skeleton, aber es scheint unpythonisch, Bash und Python zusammen zu mischen. Es gibt Python-Module und Deb-Pakete, die bei der Verarbeitung von Start- / Stopp- / Alarmbefehlen helfen können:

Hat jemand Erfolg mit einem bestimmten Ansatz zur Dämonisierung eines "Echtzeit" -Rückkopplungsregelkreises auf dem Pi gehabt?

Kochfelder
quelle

Antworten:

6

Ich habe dies bei mehreren Projekten getan. https://bitbucket.org/dnetman99/raspberrypiprojects Wenn Sie sich den gpsdpiTracker ansehen, trackerServer.pyverwendet der die Daemon-Klasse, um das Skript zu dämonisieren. Ich benutze dann nur, um restartdzu sehen, ob es stoppt und neu startet, was auch bedeutet, dass es auch nach dem Booten gestartet wird. Ich habe die Skeleton-Datei auch zum Starten und Stoppen des Daemons verwendet, dies ist jedoch nicht erforderlich, wenn Sie diese Methode verwenden.

restartd = sudo apt-get install restartd
Robert
quelle
Vielen Dank! Tolle Beispiele. Mal sehen, ob ich einen Teil dieses Codes recyceln kann. Die Daemon - Klasse ist von Python-Daemon - Modul basierend auf PEP 3143 und restartd ist hier .
Kochfelder
Sieht tatsächlich so aus, als hätten Sie Ihre eigene Daemon-Klasse gewürfelt. Nett.
Kochfelder
1
Mit Ausnahme der She-Bang-Linie ist die Demon-Klasse im Bitbucket von dnetman99 identisch mit Sander Marechals einfachem Daemon aus dem Jahr 2007. Kredit, bei dem Kredit fällig ist. Über hier
RolfBly
2

Schauen Sie sich an, wie wir im Client pybit-client dämonisieren.

https://github.com/nicholasdavidson/pybit

Das wurde entwickelt, um als Daemon auf kleinen ARM-Boxen rund um die Uhr ausgeführt zu werden.

Erledigt Protokollierung, Signalverarbeitung, Start / Stopp-Skripte usw.

James Bennet
quelle