Jaki jest właściwy sposób uruchamiania skryptu python jako demona (usługi) w języku raspbian (lub debian)?

9

Chciałbym używać mojego Pi jako termostatu domowego, z pętlą sterującą działającą w skrypcie python. Chcę uruchomić go jako demona na raspbian (debian) podczas uruchamiania.

Przykładowy skrypt bash znajduje się w /etc/init.d/skeleton, ale łączenie basha i pythona wydaje się mało mityczne. Istnieją moduły python i pakiety deb, które mogą pomóc w przetwarzaniu poleceń start / stop / alert:

Czy ktoś odniósł sukces dzięki konkretnemu podejściu do demonizacji pętli sterowania sprzężeniem zwrotnym w czasie rzeczywistym na Pi?

płyty grzewcze
źródło

Odpowiedzi:

6

Zrobiłem to w kilku projektach. https://bitbucket.org/dnetman99/raspberrypiprojects, jeśli spojrzysz na gpsdpiTracker, trackerServer.pyużywa klasy daemon do demonizacji skryptu. Następnie używam tylko restartddo obserwowania, czy zatrzymuje się i uruchamia ponownie, co oznacza również, że uruchomi się również po uruchomieniu. Użyłem również pliku szkieletu do uruchomienia, zatrzymania demona, ale nie jest to konieczne, jeśli używasz tej metody.

restartd = sudo apt-get install restartd
Robert
źródło
Dzięki! Niesamowite przykłady. Zobaczę, czy uda mi się przetworzyć część tego kodu. Klasa demona pochodzi z modułu python-demon opartego na PEP 3143 i zrestartowana jest tutaj .
płyty grzewcze
Wygląda na to, że rzuciłeś własną klasę Daemon. Miły.
płyty grzejne
1
Z wyjątkiem linii she-bang, klasa Demon w bitbucket dnetman99 jest identyczna z prostym demonem Sandera Marechala z 2007 roku. Kredyt, gdzie należy się kredyt. Via tutaj
RolfBly
2

Zobacz, w jaki sposób demonizujemy klienta pirbit-client.

https://github.com/nicholasdavidson/pybit

Został zaprojektowany do działania jako demon na małych urządzeniach ARM 24/7.

Obsługuje rejestrowanie, obsługę sygnałów, skrypty start / stop itp.

James Bennet
źródło