このサイトはアドセンスやアフィリエイト広告を利用しています

Conoha python

FlaskとGunicornのサイトの修正を反映させる方法

ConohaVPSでFlaskとGunicornとNginxでサイトを公開しましたが、Flaskのpythonファイルを更新したときに反映させるためになかなか手間取ったのでまとめ

環境 venv python Flask Gunicorn nginx mysql

venv内で動作してるFlaskアプリは自動的に再読み込みされない

venvの開発環境なら自動的に更新もしてくれるかもしれませんが、本番環境だとそうはいきません。そのため、Flaskアプリのファイルを更新したら your_flask_app.service を再起動させる必要があります。

あなたが使っているyour_flask_app.service のファイル名の調べ方は

ls /etc/systemd/system/

これで対象のファイルを探せます。おそらくはflaskappの親フォルダ名+.serviceだとおもいます。そして以下コマンドで再起動

sudo systemctl restart your_flask_app.service

動いているかどうかは

sudo systemctl status your_flask_app.service

こうなっていればOK

gunicornで利用しているポートを終了させる

gunicornを起動したまま、ファイルを更新して、再度gunicornを実行しても、ポートが別のプロセスで使われているというエラーに遭遇してしまった場合は。Flaskで使っているポート番号をまずは調べます。

今回は8000番だとします。下のどちらかを入力すると

sudo lsof -i :8000

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
gunicorn 121212 root 5u IPv4 12345 0t0 TCP localhost:8000 (LISTEN)

このような表示が出てくると思います。このときの121212がプロセスのIDです。

gunicorn が起動していて121212のPIDで8000が使われています。これを強制終了させます。

sudo kill -9 121212 もしくは全部のgunicornプロセスを切る sudo pkill -f gunicorn もありですね

-Conoha, python