次のものを持つDjangoアプリをホストするサーバーをセットアップしています:
uWSGIubuntu の 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実行できる方法はありますか?supervisordsupervisorctl restart celeryd