2013-01-13 32 views
2

我有一個樹莓派。我已經通過命令行在板上安裝了WiringPi,用於開發板上的GPIO。GPIO命令樹莓不通過crontab工作

我已經做了一個名爲aggiornaora.sh

gpio -g write 18 1 #it set the GPIO port to 1 
#log with reverse append 
(echo 'accensione';date;echo ' ') | cat - logstufa.txt > temp && mv temp logstufa.txt 

該腳本正常工作,如果我嘗試直接通過sh aggiornaora.sh Exec的它的腳本。 但是當cron運行腳本時,它只做第二個動作。所有都有root權限。 我已通過「gpio readall」檢查過此問題。

在你看來,這可能是什麼問題?

回答

4

請注意,當您從crontab執行某些操作時,它不一定會設置相同的環境變量。

最重要的env。變量爲你是PATH。我認爲根據cron您的PATH不包含您的gpio命令所在的目錄。

您可以像這樣添加一行作爲你的crontab的第一行:

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin 

,這應該解決您的問題,如果gpio位於上面列出的目錄之一。

調試crontab問題的典型方法是確保env。變量是你期望的變量。像這樣添加到要調試的腳本的第一行:

set > /path/to/log/file # be sure that this file is writable 

手動運行一次,將日誌文件複製到一邊。然後,從cron再次運行它,比較輸出 - 你會看到什麼使它們不同。

+0

非常感謝您的快速和準確的答覆mvp!我已經添加了路線,它很好地工作!現在我會嘗試調試和比較!謝謝!! – malgaboy

+0

很高興爲你效勞!請注意,在此鼓勵您接受和/或向上提供幫助您解決問題的答案。通過接受你會增加你自己的聲譽。 – mvp

+0

哦,真好!但它對我說:投票需要15個聲望。當我達到15時,我會讓你高興;) – malgaboy

0

是的,我有同樣的問題(在crontab中使用gpio命令)。速戰速決爲我工作是前面加上一個「須藤」到像GPIO命令: 須藤GPIO寫0 1

我去的時候雖然我的bash腳本和prepenneded的「須藤對我所有的GPIO的命令,一切正常精細。

以前由mvp建議的答案是用crontab修復這些類型問題的'更好的'方法。希望這會有所幫助