2014-11-21 66 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 - 

它的工作原理!