私もこの問題のバリエーションに遭遇しました-Pokomy氏がリンクした記事でアドバイスされているように、シグナルでgunicornマスタープロセスを強制終了するとうまくいくHUP
ようです。
watchdog
Pythonモジュールを使用すると、ファイル保存時に自動リロードを簡単に設定できます。セットアップは実際には一目瞭然なので、開発用の Supervisord.conf ファイルの抜粋を次に示します。
[program:ost2]
autostart=true
command=/usr/local/share/python/gunicorn --debug\
-c /Users/fish/Dropbox/ost2/ost2/utils/gunicorn/ost2-debug.py wsgi_debug
directory=/Users/fish/Dropbox/ost2/ost2
priority=500
; (etc)
[program:ost2-reloader]
autostart=true
autorestart=false
directory=/tmp
command=/usr/local/share/python/watchmedo shell-command\
--patterns="*.py;*.txt;*.html;*.css;*.less;*.js;*.coffee"\
-R --command='kill -HUP $(cat /usr/local/gunicorn/gunicorn.pid)'\
/Users/fish/Dropbox/ost2/ost2/
priority=996
; (etc)
(NB、実際にはconfファイルにない改行の前にそのサンプルにスラッシュを入れました-読みやすくするためにこれらの改行を挿入しました;それがIRLで機能するかどうかはわかりません)
最初のプログラムは gunicorn プロセスです。Werkzeug デバッガーを使用するために、開発中にシングル スレッドで実行します。2 番目の部分は興味深い点です。このコマンドは、「ファイルのサフィックスがこのリストのいずれかと一致する場合、このディレクトリ ツリー内のファイルに変更があるたびに、gunicorn PID ファイルで指定されたプロセスを強制終了します」と述べています。
私を含む多くの人にとって魅力のように機能します。知らない場合watchdog
は、非常に便利で、一見の価値があります。