次のものを持つDjangoアプリをホストするサーバーをセットアップしています:
uWSGI
ubuntu の uWSGI init スクリプトによって起動されるアプリceleryd
によって開始されたsupervisord
そこで、次のようなデプロイ スクリプトを作成しています。
- git からコードをプルする
- DB を移行する
- 再
uWSGI
起動するように指示すると、新しいコードが取得されます。 - 再
celeryd
起動するように指示すると、新しいコードも取得されます。
uWSGI
次の構成機能があります。
touch-reload
gracefully reload the uWSGI stack when a file/directory changes.
したがって、私のスクリプトは、アプリのすべてのプロセスが実行される特権のないユーザーによって実行されます。
再起動するuWSGI
には、簡単にできますtouch ~/.restart_uwsgi
。
特権のないユーザーに sudo アクセスを許可せずに実行するために同じことをceleryd
実行できる方法はありますか?supervisord
supervisorctl restart celeryd