at 命令 for Linux 作业无法从 PHP 工作



我有一个脚本.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命令也会被忽略:(

我已经找到了解决方案,

我从/etc/at.deny 中删除了 www-data,现在"at"comand 在 PHP 中工作正常(sell_exec)

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

这是你应该尝试的(如果你使用 ksh 以外的东西,请适应):

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

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

最新更新