ラズベリーパイが起動したときに何かのプログラムを自動的に実行したいときは、/etc/rc.localファイルに記述する。(ラズベリーパイというよりは、Linux全般だと思うが)
わたしの場合エディタnano(Windowsマシンしか使っていない方は使いやすいエディタです。矢印キーでカーソル移動、保存はCtrl+O、終了はCtrl+Xだけ憶えておけば大丈夫)を使って、
$ sudo nano /etc/rc.local
のように開いて、exit 0の手前に実行したい処理を記述している。exitは処理を終了する命令のため、exitの後に記述しても意味がない。
ちなみにわたしのラズベリーパイBの/etc/rc.localファイルは以下のようななっている。
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. # Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi # 起動時に実行したい処理 sh /home/pi/myshell.sh & exit 0
上記例では、起動時に/home/piディレクトリにあるmyshell.shというシェルプログラムを実行している。最後に「&」をつけているのはバックグラウンドで実行するという意味。無限ループ的にずっと実行しておきたいようなプログラムであればこんな感じで設定することが多い。
その上にあるif文では、IPアドレスを表示しているようだ。
起動時に何かメッセージを入れたいのであれば、
printf "Hello, My name is Pi!\n"
などとすればよい。少し愛着がわきます。
スポンサーリンク