Python демонизировать - PullRequest
       18

Python демонизировать

6 голосов
/ 02 августа 2010

Я хотел бы демонизировать процесс Python и теперь хочу спросить, является ли хорошей практикой запуск демона, такого как родительский процесс, и вызов другого класса, который открывает 10-30 потоков.

Я планирую написать сценарий мониторинга для группы серверов и хотел бы проверять каждый сервер каждые 5 минут, чтобы каждый сервер проверялся ровно через 5 минут.

Я хотел бы иметь еготаким образом (вроде как, вывод в стиле ps auxf):

|monitor-daemon.py
 \-check-server.py
 \-check-server.py

....

Спасибо!

Ответы [ 3 ]

8 голосов
/ 02 августа 2010

Может быть, вы должны использовать http://pypi.python.org/pypi/python-daemon

1 голос
/ 02 августа 2010

Для этого вы можете использовать супервизор .Вы можете настроить задачи для реагирования на события.События могут быть созданы вручную или автоматически с помощью мониторинга процессов или на регулярной основе.

Он полностью настраивается и записывается на Python.

Пример:

[program:your_daemon_name]
command=your_daemon_process
# Add extra options here according to the manual...

[eventlistener:your_monitor_name]
command=your_monitor_process
events=PROCESS_STATE_RUNNING # Will be triggered after a program changes from starting to running
# Add extra options here according to the manual...

Илиесли вы хотите, чтобы обработчик событий отвечал на выходные данные процесса, используйте событие PROCESS_COMMUNICATION_STDOUT или TICK_60 для проверки каждую минуту.Журналы могут быть перенаправлены в файлы и тому подобное, так что вы всегда можете просмотреть состояние.

0 голосов
/ 02 августа 2010

Нет ничего особенного в создании собственной функции daemonize: источник для расширенного программирования в среде Unix (2-е издание) находится в свободном доступе: http://www.apuebook.com/src.tar.gz - вы ищете apue.2e/daemons/init.cfile.

Существует небольшая вспомогательная программа , которая выполняет всю работу по созданию правильного демона, ее можно использовать для переноса произвольных программ;это может избавить вас от хлопот.

...