2019年6月17日月曜日

【RaspberryPi】cron設定で起動時に一度だけ実行する設定

とりあえず勉強したことは
何でもいいので書いていったらいいんじゃないの


今回は起動時に実行する処理とかに関して
はじめはrc.localとかに書いてみていたんですが、
どうもサービスの起動順の関係か、上手くいかなかったんで
別の場所を探してみました。




起動時のcron設定実行


今回はシェルが実行できればいいのでcronで実行することにしました。
cronは定期的に実行するときに設定したりするやつですね。
「毎日0時0分に」「毎時0分に」とかのタイミングで実行するやつですね。
ここに時間でなく「@reboot」と記述すると起動時に実行するようにできるらしいです。


OS起動時に実行するシェルスクリプトを作成して
(ここではstartup_shell.shとしておきます。)
スクリプトファイルはchmodで実行権限を与えておきます。

chmod +x /home/pi/startup_shell.sh

ここからcronの編集を行います。

crontab -e

RaspberryPiだとvi上での変更になりますね。
普段はLeafpadで編集作業をしているのでviは使いづらい…
「iキー」で挿入編集モードにして、記述します。

@reboot /home/pi/startup_shell.sh

記述したら「ESCキー」で編集モードを解除して
「:wq」で書き込み後終了します。
この辺の操作がなかなかわからないんですよね…。


書き込んだら一応確認しておきましょう。

crontab -l

これで次のOS起動時にこのシェルが実行されるはずです。
シェルの実行中にエラーが出ていたりすると途中で処理終了したりするので
注意です。
また、実行権限がログインユーザー(ここではpi)で行われるので、
root権限が必要な処理に「sudo」つけていないと失敗したりします。
気付かない形で処理が失敗していたりするので、そこの確認は必要ですね…。


とりあえずこれで動いたのでヨシ!


0 件のコメント:

コメントを投稿