我有一个命令行应用程序,在执行第一个脚本后,我需要实现某种调度程序来运行一个脚本。
现在,我正试图在执行时间后一分钟运行一个脚本,使用此指令:
$dir = getcwd().'/';
exec('echo '.$dir.'./prices get:inventorylist '.database_connector::getUserId().' '.database_connector::getLand().' --reportId="'.$this->reportRequestId.'" | /usr/bin/at now + 1 min');
尝试在没有echo
和|的情况下运行此操作时/usr/bin/at now + 1 min
它运行得非常好,没有任何错误,我还检查了at
是否正常工作,应该没问题。
实际上,脚本在给定的额外时间后执行,但我在syslog中不断收到此错误:
Jan 23 19:09:01 atd[6792]: Exec failed for mail command: No such file or directory.
我无法理解这个错误,正如我上面提到的那样,脚本正在运行,并且我在没有任何问题或错误的情况下运行该指令。
有什么我不明白为什么可能会抛出这个错误?
答案 0 :(得分:1)
您是否遗漏了/usr/sbin/sendmail
或某些东西?
该错误是at
,告诉您它无法使用我相信的命令输出发送邮件。