django fastcgiプロセスを開始するためのsupervisord.confを作成しようとしています。唯一の問題は、fastcgiコマンドを実行するとfastcgiプロセスが生成され、スーパーバイザにすぐに「EXITED」と表示されることです。 (これはスーパーバイザのポイントを打ち負かします)Django Supervisord fastcgi設定(supervisord.conf) - すぐに終了する
django fastcgiプロセスは実際に実行されているがバックグラウンドにあるという事実をスーパーバイザプロセスが認識できる方法はありますか?私はsupervisord config paramsのすべてを掘り下げていましたが、これは可能なはずです(おそらく、これは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コンテキストで変数を使用して設定ファイルを作成するためにdjango-supervisorを使用しています。この例の目的のために、{{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
お読みいただきありがとうございます。どんなアドバイスも大歓迎です。