Как правильно запустить скрипт на python как демон (сервис) в raspbian (или debian)?

9

Я хотел бы использовать мой Pi в качестве домашнего термостата, с циклом управления, запущенным в скрипте Python. Я хочу запустить его как демон на raspbian (debian) при запуске.

В /etc/init.d/skeleton есть пример bash-скрипта, но смешивать bash и python кажется неуместным. Существуют модули Python и пакеты deb, которые могут помочь с обработкой команд start / stop / alert:

У кого-нибудь был успех с особым подходом к демонизации цикла управления обратной связью в реальном времени на Pi?

варочные панели
источник

Ответы:

6

Я сделал это на нескольких проектах. https://bitbucket.org/dnetman99/raspberrypiprojects. Если вы посмотрите на gpsdpiTracker, он trackerServer.pyиспользует класс daemon для демонизации сценария. Затем я просто использую его, restartdчтобы посмотреть, остановится ли он, и перезапустит его, что также означает, что он запустится и после загрузки. Я также использовал файл скелета для запуска, остановки демона, но это не обязательно, если вы используете этот метод.

restartd = sudo apt-get install restartd
Роберт
источник
Спасибо! Потрясающие примеры. Посмотрим, смогу ли я переработать часть этого кода. Класс daemon из модуля python-daemon, основанного на PEP 3143, и restartd здесь .
вар
На самом деле похоже, что вы катили свой собственный класс Daemon. Ницца.
варки
1
За исключением строки she-bang, класс Demon в битовой корзине dnetman99 идентичен простому демону Сандера Маречала с 2007 года. Кредит, где кредит должен. Через здесь
RolfBly
2

Посмотрите, как мы демонизируем в клиенте pybit-client.

https://github.com/nicholasdavidson/pybit

Это было разработано для работы в качестве демона на маленьких коробках ARM 24/7.

Ручки регистрации, обработки сигналов, запуска / остановки сценариев и т. Д ...

Джеймс Беннет
источник