Pythonをデーモン化して動かす
自作したPythonスクリプトを常駐化して動かしたいことありませんか?DiscordのBotとか、室温計測のスクリプトとか...そんな時はデーモン化して、裏で働いてもらいましょう!ついでに再起動しても勝手に動作するように設定しておきます。
1. 環境
- RaspberryPi ZERO WH
2. 導入
- デーモン化したいPythonファイルを適切なディレクトリ(今回は/opt/)に移動
sudo cp test.py /opt/
2. systemdの設定ファイルを作成
sudo vim /etc/systemd/system/test.service
3. サービスの有効化
再起動や電源投入後も自動的にサービスを開始してくれるようになる。
sudo systemctl enable test.service
4. サービスを開始する
sudo systemctl start test.service
5. 動いているか確認する
sudo systemctl status test.service
6. ダメそうならエラー箇所を探す
journalctl -xe -u test.service
3. 番外編
modulenotfounderrorが結構な確率で出る。pip等で外部ファイルを呼び出している場合、実行ユーザーが異なっていることがほとんどなので、rootユーザーのpipでもインストールしておこう!
- rootになる
sudo -i
2. 普通にpipする
# pip install {package name }
4. 最後に
最も簡単にデーモン化できました。良きデーモンライフを!