我有一个脚本.sh
,其中包含curl命令:
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
命令运行脚本,它也会被忽略:(
答案 0 :(得分:2)
我找到了解决方案,
我从 /etc/at.deny 中删除了 www-data ,现在'at'命令在php(sell_exec)中工作正常
答案 1 :(得分:0)
我知道有时需要使用source
来调用环境变量。
这是你应该尝试的东西(如果你使用的不是ksh,则适应):
shell_exec('source ${HOME}/.kshrc ; at -f phpsc.sh now + 5 minute');
答案 2 :(得分:0)
在CentOS 7中,我不得不添加' apache'在/etc/at.allow。