Raspberry Pi 3 & Python 開発ブログ☆彡

Raspberry Pi 3の使い方、設定をわかりやすく解説。Raspberry Pi3 Model B(Element14版)、Raspbian 8.0(NOOBS Ver1.9.2)を使用して開発中。

【スポンサーリンク】

Pythonプログラムを起動時に実行する方法(Systemd)

【スポンサーリンク】

今回はpythonプログラムをRaspberry Pi起動時に自動実行する方法を紹介したいと思います。Raspberry Pi起動から常時動かすプログラムは多いと思います。そういう場合にとても便利な機能です。

serviceファイルの作成

SystemdというLinuxの起動処理を管理する機能を使います。そのためにまず起動したいプログラムや設定等を記載したserviceファイルを作成します。今回は例としてtest.serviceというファイル名で説明していきます(ファイル名は"任意の名前+.service”になります。任意で問題ありませんので、わかりやすい名前を付けてください)。

まず、/lib/systemd/system/test.serviceファイルを下記のコマンドで開きます(新規作成になります)。

sudo nano /lib/systemd/system/test.service

以下のように編集します。

[Unit]
Description = Test

[Service]
ExecStart=/usr/bin/python3 /home/pi/testrun.py
Restart=always
Type=simple

[Install]
WantedBy=multi-user.target

上記の"ExecStart"に自動実行したいpythonファイルのパスを記載します。今回は例として/home/pi/testrun.pyを自動実行する設定にしてあります。

serviceの起動

下記のコマンドで上記で作成したサービスを起動することができます。サービスを停止したい場合はstart⇒stopに変更して実行してください。

systemctl start test.service

Raspberry Pi起動時にserviceを自動実行する設定

下記のコマンドで上記で作成したサービスをRaspberry Pi起動時に自動実行することができます。自動実行をを停止したい場合はenable⇒disableに変更して実行してください。

systemctl enable test.service

動作確認

systemctl enable設定をして、Raspberry Piを再起動します。psコマンドで指定したpythonプログラムが起動しているか確認します。起動後、何もしなくてもpythonプログラムが実行していれば、成功です。