Я пытаюсь написать supervisord.conf для запуска процесса django fastcgi. Единственная проблема заключается в том, что когда я выполняю свою команду fastcgi, она порождает процесс fastcgi и сразу же отображается в супервизоре как «EXITED». (Это побеждает точку зрения руководителя)
Есть ли какой-нибудь способ, которым процесс супервизора может знать о том факте, что процесс django fastcgi, действительно, выполняется, но что он находится в фоновом режиме? Я копался во всех параметрах конфигурации супервизора, кажется, что это возможно (возможно, он может каким-то образом определить это на основе pid-файла или чего-то в этом роде), но я немного заблудился в документации.
$ ./manage.py supervisor status
celerybeat RUNNING pid 12575, uptime 0:01:17
celerycam RUNNING pid 12573, uptime 0:01:17
celeryd RUNNING pid 12572, uptime 0:01:17
django EXITED Mar 13 07:57 PM
runserver RUNNING pid 12574, uptime 0:01:17
ПРИМЕЧАНИЕ. На самом деле я использую django-supervisor для создания моего файла конфигурации с использованием переменных в контексте Django. Для целей этого примера переменные типа {{PYTHON}} и {{settings.VIRTUALENV_ROOT}} просто заполняются очевидными путями. Он должен функционировать так же, как обычный файл supervisor.conf.
Ниже приведен мой файл supervisord.conf.
$ more supervisord.conf
[supervisord]
logfile={{ settings.VIRTUALENV_ROOT }}/log/supervisord-jj.log
logfile_maxbytes=50MB
logfile_backups=15
pidfile={{ settings.VIRTUALENV_ROOT }}/var/run/supervisord-jj.pid
[program:celeryd]
command={{ PYTHON }} {{ PROJECT_DIR }}/manage.py celeryd
[program:celerycam]
command={{ PYTHON }} {{ PROJECT_DIR }}/manage.py celerycam
[program:runserver]
{% if settings.DEBUG %}
exclude=false
{% else %}
exclude=true
{% endif %}
[program:django]
command={{ PYTHON }} {{ PROJECT_DIR }}/manage.py runfcgi
method=threaded daemonize=true
outlog={{ settings.VIRTUALENV_ROOT }}/log/django-fcgi.log
socket={{ settings.VIRTUALENV_ROOT }}/var/run/django-run.socket
pidfile={{ settings.VIRTUALENV_ROOT }}/var/run/django.pid
[program:autoreload]
exclude=true
Спасибо за чтение. Любой совет высоко ценится.