LoginSignup
0
3

More than 3 years have passed since last update.

FlaskのAPIサーバをforeverで永続化する

Posted at

環境情報

環境
Raspi 3B+
OS rasbian (stretch)
pip 20.2.4
python 3.5
npm 6.14.9
forever v3.0.2
flask 0.12.1

各種インストール

$ pip install Flask
$ npm install -g forever

Flaskでサーバを立てる

(参考)https://qiita.com/tomboyboy/items/122dfdb41188176e45b5

hoge.py
from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return 'Hello world'

if __name__ == '__main__':
    app.run(debug=False, host='0.0.0.0', port=5000)
実行(テスト)
$ python hoge.py
^C

トラブルシュート

永続化

このままだとsshを抜ける際にプロセスが終了するのでforeverで永続化する。foreverはコマンドがデフォルトでnodeなだけで-cオプションを利用することで任意のコマンドを指定でき、Pythonコードも永続化できる。

永続化を実行
$ forever start -c python hoge.py

foreverのコマンドやオプションについては以下参考
https://qiita.com/disc99/items/57490f5eef3e2eb685ba

再起動時にforeverを実行する

上記のままでもラズパイ自体をrebootすると起動時にforeverが実行されないためサーバは死んでしまっている。

/etc/rc.localに以下を記述
(参考)https://584homes.com/it/raspberry-pi/rasberrypi-startup1803.html%20=

rc.local

sudo forever start -a --uid Hoge -c python /home/pi/hoge.py

exit 0
0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3