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 もありですね