2014-11-21 92 views
1

我正在嘗試使用web界面(在我的Raspberry Pi上)製作鬧鐘。 我想用PHP和crontab做這個。
這是我的PHP代碼:使用PHP創建cron作業

shell_exec("./wake.sh $minutes $hours $days");  

這是wake.sh腳本:

echo "number 1: $1; number 2: $2; number 3: $3" | wall; 
(crontab -u $USER -l; echo "$0 $1 * * $2 /var/www/alarm.sh") | crontab -u $USER - 

如果我從運行的bash腳本(從www數據的用戶),我得到的廣播消息和crontab文件中的條目,但是如果我從PHP腳本運行它,則會發送廣播消息,但crontab文件中沒有條目。

+4

權限。您在bash中調用它的用戶有權執行'wake.sh',PHP下運行的用戶(可能是web服務器用戶)不會。 – 2014-11-21 09:38:46

+0

問題狀態bash和php都以www數據運行。如果是這樣,那不是權限,或者你實際上不是以同一用戶身份執行。 – ToBe 2014-11-21 12:05:33

+0

但是,如果php執行這個腳本它從www數據用戶廣播 – Nikolar 2014-11-21 13:10:44

回答

0

我終於找到答案:$USER變量是空的,如果我從PHP執行它。 現在我用:

(crontab -l; echo "$0 $1 * * $2 /var/www/alarm.sh") | crontab - 

它的工作原理!