I скопирован из here, чтобы запустить мой код Python в качестве демона. Для дополнительного времени безотказной работы. Я подумал, что было бы лучше использовать супервайзер, чтобы этот демон работал.Запустите скрипт python с супервизором
Я сделал это. python_deamon.conf
[program:python_deamon]
directory=/usr/local/python_deamon/
command=/usr/local/python_venv/bin/python daemon_runnner.py start
stderr_logfile=/var/log/gunicorn.log
stdout_logfile=/var/log/gunicorn.log
autostart=true
autorestart=true
Проблема заключается в том, что хотя руководитель успешно запускает python_daemon он держит заново попытать.
2015-09-23 16:10:45,592 CRIT Supervisor running as root (no user in config file)
2015-09-23 16:10:45,592 WARN Included extra file "/etc/supervisor/conf.d/python_daemon.conf" during parsing
2015-09-23 16:10:45,592 INFO RPC interface 'supervisor' initialized
2015-09-23 16:10:45,592 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2015-09-23 16:10:45,592 INFO supervisord started with pid 13880
2015-09-23 16:10:46,595 INFO spawned: 'python_deamon' with pid 17884
2015-09-23 16:10:46,611 INFO exited: python_deamon (exit status 1; not expected)
2015-09-23 16:10:47,614 INFO spawned: 'python_deamon' with pid 17885
2015-09-23 16:10:47,630 INFO exited: python_deamon (exit status 1; not expected)
2015-09-23 16:10:49,635 INFO spawned: 'python_deamon' with pid 17888
2015-09-23 16:10:49,656 INFO exited: python_deamon (exit status 1; not expected)
2015-09-23 16:10:52,662 INFO spawned: 'python_deamon' with pid 17891
2015-09-23 16:10:52,680 INFO exited: python_deamon (exit status 1; not expected)
2015-09-23 16:10:53,681 INFO gave up: python_deamon entered FATAL state, too many start retries too quickly
Только для записи после перекрывая run()
метод, который я никогда ничего не вернуть.
Можно ли делать то, что я пытаюсь сделать, или я тупой?
P.S: Я знаю, что основная причина всей проблемы является то, что с тех пор запуск() никогда не возвращает ничего супервизор продолжает пытаться запустить его и, следовательно, считает, что этот процесс не удался, и дает статус FATAL Exited too quickly (process log may have details)
.
Мой фактический вопрос: я делаю это правильно? или это можно сделать таким образом?
P.P.S: Автономный (без надзора) daemon_runnner.py
работает отлично с разрешениями sudo и без них.
Вы проверили 'daemon_runnner.py' без демона? Он выходит со статусом 1. – wenzul