我想写一个supervisord.conf来启动一个django fastcgi进程。唯一的问题是,当我执行我的fastcgi命令时,它产生了一个fastcgi进程,并立即在主管中显示为“EXITED”。 (这有点违背了主管的观点)Django Supervisord fastcgi配置(supervisord.conf) - 立即退出
有没有某种方式让主管进程可以意识到django fastcgi进程确实在运行,但它在后台?我正在挖掘所有的supervisord配置参数,看起来应该是可能的(也许它可以以某种方式确定这是基于一个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
感谢您的阅读。任何意见非常感谢。