ラズパイで任意のFlaskサーバを自動起動させる方法

2022年8月8日

はじめに

今回は自作FlaskをPythonで動かし運用する方法をご紹介したいと思います。
PythonはWebサーバを立てるのも本当に簡単ですよね。
業務では使えなくても、簡単なサーバをサクッと作るのにFlaskはとても便利です。
ぜひ作ったプログラムをラズパイで動かしてあげてください。

インストール方法

最新OSには入っているようですが、入っていない場合は下記のコマンドでインストールしてください。

sudo apt-get install python3-pip
sudo pip3 install flask

サンプルコード

Flaskでの最低限のコードを書いています。
サンプルとして「sample.py」で作成しています。

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'

if __name__ == '__main__':
    app.run(host = '0.0.0.0', port=5000, threaded=True)

動作確認

下記のコマンドを実行して動作させてみましょう。

sudo python3 sample.py

起動時に実行するように設定する。

今回はsystemdを利用する方法で行いたいと思います。

下記のコマンドで設定ファイルを作成します。ファイル名は任意で問題ありません。

sudo nano /etc/systemd/system/flask_app.service

下記のような設定ファイルを書きます。
重要なのは「ExecStart」の部分ですが、絶対パスを書く必要があります。

[Unit]
Description=Flask Web App Sample

[Service]
ExecStart=/usr/bin/python3 /home/pi/sample.py

[Install]
WantedBy=multi-user.target

動作するか手動で立ち上げてみましょう。

sudo systemctl start flask_app.service

動作しているか下記のコマンドで確認します。

sudo systemctl status flask_app.service

特に問題なければ、下記のコマンドで自動起動されるようになります。

sudo systemctl enable flask_app.service

まとめ

いかがだったでしょうか?
これだけで、Flaskからラズパイを操作する他のスクリプトを呼び出せるので夢が広がりますね。
ぜひ試してみてください!!