Gunicornサーバーでファイルを更新した後にsystemdサービスを再起動するには?

Gunicornサーバーでファイルを更新した後にsystemdサービスを再起動するには?

私の目標:

- 同じアプリケーションで複数のPython Flaskアプリケーションを提供する開発する仕える人

- サーバー側キャッシュなし

-Gunicornアプリケーションをバックグラウンドジョブとして実行する

-nginxはリバースプロキシとして機能し、ホスト名でアプリケーションインスタンスを解決し、すべてポート80で実行されます。

systemdを使用してバックグラウンドでFlask / Gunicornアプリを実行できることに気づきました。問題は、このアプリが私のアプリのキャッシュされたバージョンを提供し、新しいタスクを送信するたびに私のビルドの新しいバージョンを提供したいということです。実行中のバージョン

systemd/system/website.com.service

[Unit]
Description=Gunicorn instance to serve website.com
After=network.target

[Service]
User=melcma
Group=www-data
PIDFile=/var/tmp/gunicorn.pid
WorkingDirectory=/var/www/website.com
Environment="PATH=/var/www/website.com/env/bin"
ExecStart=/var/www/website.com/env/bin/gunicorn --workers 1 --bind unix:website.com.sock -m 007 wsgi:app
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target

私が知っている限り、「ExecReload = / bin / kill -s HUP $ MAINPID」行は私のサーバーを再ロードする必要がありますが、ファイルの変更時にこれをどのようにトリガーできますか? ExecStartコマンドに「--reload」を追加しようとしましたが、うまくいきませんでした。

そしてボーナスの質問があります:

systemdを使用することがこれを達成するのに最適な方法ですか、それともむしろサーバーを損傷しますか? (バックグラウンドでジョブを実行し、gunicornインスタンスを起動し、ファイルが変更されるとそれ自体が更新されます。)

ベストアンサー1

おすすめ記事