Apa cara yang benar untuk menjalankan skrip python sebagai daemon (layanan) di raspbian (atau debian)?

9

Saya ingin menggunakan Pi saya sebagai termostat rumah, dengan loop kontrol berjalan dalam skrip python. Saya ingin menjalankannya sebagai daemon pada raspbian (debian) saat startup.

Ada contoh skrip bash di /etc/init.d/skeleton, tetapi tampaknya unpythonic untuk mem-mash bash dan python bersamaan. Ada modul python dan paket deb yang dapat membantu dengan pemrosesan perintah start / stop / alert:

Adakah yang berhasil dengan pendekatan tertentu untuk daemonisasi loop kontrol umpan balik "waktu nyata" pada Pi?

hobs
sumber

Jawaban:

6

Saya telah melakukan ini pada beberapa proyek. https://bitbucket.org/dnetman99/raspberrypiprojects jika Anda melihat gpsdpiTracker, trackerServer.pygunakan kelas daemon untuk daemonisasi skrip. Saya kemudian hanya menggunakan restartduntuk menonton jika berhenti dan me-restart itu, yang juga berarti akan memulai setelah boot juga. Saya juga telah menggunakan file kerangka untuk memulai, menghentikan daemon, tetapi tidak perlu jika Anda menggunakan metode ini.

restartd = sudo apt-get install restartd
Robert
sumber
Terima kasih! Contoh luar biasa. Akan melihat apakah saya dapat mendaur ulang beberapa kode itu. Kelas daemon berasal dari modul python-daemon berdasarkan PEP 3143 dan restartd ada di sini .
hobs
Sebenarnya sepertinya Anda menggulung kelas Daemon Anda sendiri. Bagus.
kompor
1
Kecuali untuk garis she-bang, kelas Demon di bitbucket dnetman99 identik dengan daemon sederhana Sander Marechal dari 2007. Kredit tempat kredit jatuh tempo. Lewat sini
RolfBly
2

Lihatlah cara kita daemonize di klien pybit-client.

https://github.com/nicholasdavidson/pybit

Itu dirancang untuk dijalankan sebagai daemon pada kotak ARM kecil 24/7.

Menangani pencatatan, penanganan sinyal, skrip start / stop dll ...

James Bennet
sumber