命令为linux工作不能从PHP工作

时间:2016-06-09 04:12:56

标签: php linux shell at-job

我有一个脚本.sh,其中包含命令:

curl --digest "http://xxxxxxx.xxx/mail.php?email=xxxx@xxx.xx";
从终端

这很好用:

./script.sh #(mail arrives in my box)
来自php的

这很好用:

shell_exec('./phpsc.sh');  // (mail arrives in my box) 
从终端

这很好用:

 at -f phpsc.sh now + 5 minute 
 # (job created, mail arrives in my box after 5 minutes)
来自php的

这不起作用:

shell_exec('at -f phpsc.sh now + 5 minute'); //:( :(

即使我在脚本中放入at命令并从php at命令运行脚本,它也会被忽略:(

3 个答案:

答案 0 :(得分:2)

我找到了解决方案,

我从 /etc/at.deny 中删除了 www-data ,现在'at'命令在php(sell_exec)中工作正常

答案 1 :(得分:0)

我知道有时需要使用source来调用环境变量。

这是你应该尝试的东西(如果你使用的不是,则适应):

shell_exec('source ${HOME}/.kshrc ; at -f phpsc.sh now + 5 minute'); 

答案 2 :(得分:0)

在CentOS 7中,我不得不添加' apache'在/etc/at.allow。