作成したスクリプトがあり、ルートで正しく実行されます。クローンジョブを追加しましたが、正しく実行されません。
コマンドは次のとおりです。
gpio -g mode 17 input
getval="$(gpio read 17)"
todayis=$(date)
getstatus=$getval
if [ "$getstatus" = "0" ]; then
power="Power ON"
else
power="Power OFF"
echo $todayis $power $getstatus >> /var/www/turnmeon.log
ルートとして実行したときのログファイル:
Wed Nov 8 21:11:41 UTC 2017 Power ON 0
crontabで実行したときのログファイル:
Wed Nov 8 21:11:41 UTC 2017 Power OFF
OFFが実際に真であれば、予想したように最後に1がありません。
crontabジョブの代わりにbashプロンプトで実行されるのはなぜですか?
*/2 * * * * bash /myscript.sh
ベストアンサー1
権限の問題のようです。おそらくデスクトップユーザーとしてcrontabを編集しているでしょう。これは、ジョブがデスクトップユーザーとして実行されることを意味します。ジョブにrootが必要な場合は、rootでcrontabを編集する必要があります。