Edited at

ラズパイ起動時にスクリプトを実行したい

毎日定期的にラズパイを再起動させ、起動時に動かしたいシェルスクリプトがあったとする。

シェルスクリプトの中身はこんな感じ


bot.sh

echo "スタート"

node /home/pi/dev/bot.js



方法1. Cron

Crontabで再起動後にスクリプトを起動するよう設定する。


cronを設定

crontab -e


起動日時を指定

毎日9時に実行する書き方

00 9 * * * sh /home/pi/bot.sh


cronの確認

crontab -l


動作確認

cronのログをみたときに

vim /var/log/cron.log

起動してるようだが、rootユーザーで動作してないようで、正常にスクリプトが動作しなかった。

crontabではrootユーザーでは動かせない?


方法2. rc.local


スクリプトを/usr/local/bin/へ移動

bot.shというスクリプトを /usr/local/bin/ へ移動させる。

$ sudo mv ./bot.sh /usr/local/bin/


/etc/rc.localに起動したいスクリプトを指定

/etc/rc.local をvimで開く

sudo vim /etc/rc.local

exit 0の前にbot.shを追加した。

(パスは書かなくても動いた)


/etc/rc.local

bot.sh

exit 0



動作確認

結果はOK

ラズパイ再起動させて起動を待った結果、無事にスクリプトが動いていました。


参考にしたリンク


Cron


rc.local