私は、Django プロジェクトへの最新の変更を取得する をsudo restart projectname
毎回発行するよりも良い方法を探しています。このコマンドは、Gunicorn サーバー プロセスを開始/開始するために使用する Upstart に関連していると思います。git pull origin master
restart
この再起動により、短時間の停止が発生します。Gunicorn はまだ再起動中なので、Web サーバー (nginx) にアクセスするユーザーには 500 が返されます。実際、瞬時に再起動するように見えますが、ページが読み込まれるまでに数秒かかります。
これをシームレスに行う方法について何かアイデアはありますか? 理想的には、私git pull
と Gunicorn のリロードを自動的に発行したいと思います。
ベストアンサー1
HUP
次のようなシグナルを使用して、Gunicorn に正常にリロードするように指示できます。
kill -HUP <pid>
(よくある質問詳細については)
私が使うスーパーバイザーGunicorn サーバーを制御するために、デプロイ後に Gunicorn をリロードするこの (少しハッキーな) 方法を使用できます。
supervisorctl status gunicorn | sed "s/.*[pid ]\([0-9]\+\)\,.*/\1/" | xargs kill -HUP
pidof
明らかに、、またはを使用して同様のことを実現できますps
。
これは実際にはファブリックスクリプトなので、サーバーにログオンする必要すらありません。