Raspberry Pi zeroにおいて,Pythonプログラムの自動起動で悩んだのでやり方を記録する.
serviceファイルの作成
/etc/systemd/system/内でserviceファイルを作成する.
serviceファイルの作成
$ cd /etc/systemd/system/
$ sudo vim test.service
serviceファイルの内容
下記のように記載した.User=Username
Group=Username
にはOSのユーザ名を記載した.After=network.target
にすることで,ラズパイがインターネットに接続された後に実行される.ExecStart
は絶対パスで書くことに注意する.ただしWorkingDirectory
にディレクトリを指定することで,実行ファイル名は相対パスでも動作する.
serviceファイルの内容
[Unit]
Description=Test
After=network.target
[Service]
User=Username
Group=Username
Type=simple
WorkingDirectory=/home/pi
ExecStart=/usr/bin/python3 main.py
[Install]
WantedBy=multi-user.target
serviceファイルの動作確認
以下のように実行することでserviceファイルが動作するかを検証できる.
serviceファイルの動作確認
$ sudo systemctl daemon-reload
$ sudo systemctl start test.service
$ sudo systemctl status test.service
serviceファイルの登録
上の結果がエラーなくrunning
になっていれば問題ない.以下のようにすることで起動時に自動的に実行されるようになる.
serviceファイルの登録
$ sudo systemctl enable test.service
解除は,enable -> disable
上のように作業することでPythonプログラムを自動的に実行できるようになった.