回答:
参照:http : //projects.unbit.it/uwsgi/wiki/Management
オプションを使用してuwsgiを起動した--touch-reload=/path/to/special/file/usually/the.ini
場合、uWSGIをリロードするには、そのファイルをタッチしてリロードするだけです。
touch /path/to/special/file/usually/the.ini
あなたは、「自動再」機能をしたいなら、これはこれが行わ取得するヒントは次のとおりです。 http://projects.unbit.it/uwsgi/wiki/TipsAndTricks#uWSGIdjangoautoreloadmode
py-autoreload=N
新しいリリースにはオプションがあります。N
チェックの頻度(秒単位)に設定するだけです(3が適切な値です)。
djangoの自動リロードを失いたくない場合は、このリロードメソッドを登録します(つまり、settings.pyで):
import uwsgi
from uwsgidecorators import timer
from django.utils import autoreload
@timer(3)
def change_code_gracefull_reload(sig):
if autoreload.code_changed():
uwsgi.reload()
これで、コードを変更すると、コードがリロードされます。
著者:シモーネ・フェデリシ
uwsgiでは、kill SIGNALを使用して再起動することもできます。以下のように使用します。
# ps -efa | grep uwsgi | grep prod
app 13390 13383 0 07:40 ? 00:00:00 /usr/local/bin/uwsgi --ini /etc/uwsgi/apps-enabled/app_prod.ini
app 13417 13390 0 07:40 ? 00:00:00 /usr/local/bin/uwsgi --ini /etc/uwsgi/apps-enabled/app_prod.ini
app 13419 13390 0 07:40 ? 00:00:00 /usr/local/bin/uwsgi --ini /etc/uwsgi/apps-enabled/app_prod.ini
# kill -HUP 13390
同じコマンドを実行すると、子プロセスpidがマスターによって再生成されるときに変更されることがわかります。また、マスター/ワーカープロシージャカウントのuwsgi構成を確認します。この方法は、ansibleまたは他の自動化ツールと簡単に統合できるため、リモートでの使用が簡単になります。
これは、元のprocを--touch-reloadで開始する必要はありません。