はじめに
Raspberry Pi を起動時に、任意のプログラムをシェルスクリプトによって実行する方法を紹介します。また、実際に実行ができているか確認するため、シェルスクリプトでpythonファイルを実行してみました。シェルを書き換えればpython以外のプログラムも実行可能です。
読んでほしい人
・ラズパイ(もしくはLinux)起動時に何らかのプログラムを実行させたい人
・シェルってなに?って人、もしくはあまり詳しくない人
(シェルについては、3分ほどで読めるこの解説を読んでもらえるといいかと思います。)
環境
ハード : Raspberry Pi 3 Model B+
(OSが同じであれば、以下の方法で実行可能かと思います)
OS : Raspbian GNU / Linux 10
(Windowsだと以下の方法ではできないので注意!!)
実装
1. シェルスクリプトファイルの作成
/usr/local/bin/ に autostart.sh を作成する。
pi@raspberrypi:~ $ sudo nano /usr/local/bin/autostart.sh
今回は /home/pi/ ディレクトリにある hello.py(3. で後述)を実行したいため、autostart.shは以下のように変更を加え保存(ctrl + s)する。変更・保存ができているか心配な時は再度↑のコマンドを入力するとよい。
# !/bin/sh
python3 /home/pi/hello.py
加えて、シェルスクリプトに実行権限をを与える。
pi@raspberrypi:~ $ chmod 755 /usr/local/bin/autostart.sh
2. rc.localの変更
rc.localに変更を加え、autostart.shを起動時に実行できるようにする。
(rc.localは/etc/rc.localにあります。)
具体的な変更は以下のように成っている。rc.local の最後の部分のみ変更を行っている)
- 変更前
fi
exit 0
- 変更後
fi
autostart.sh
exit 0
3. pythonファイルの作成
/home/pi/ ディレクトリに hello.py を作成する。
print("hello, ivrc")
4. 再起動して確認
GUIからでも、terminalからsudo rebootでもよいので再起動して確認してみてください。
おわりに
今回はRaspberry piで行いましたが、シェルの書き方を少し変えればRaspbian以外のUnix系OS・Python以外の言語でも同じことができます。シェルは私も勉強中なので、少しずつ自力で書けるように頑張ります。