2014-05-10 74 views
-1

脚本的执行时间超过一分钟。所以,我想运行该脚本作为后台任务。PHP背景cron作业

我读过很多关于它在互联网上和阅读print shell_exec('/usr/bin/php -q page.php &');不是因为TAKS解决方案仍然是该过程的一个孩子。我已经用睡眠测试了它(10),事实上,应该调用cron作业的页面正在等待10秒钟。

所以,symcbean已经写了一篇文章(http://symcbean.blogspot.nl/2010/02/php-and-long-running-processes.html?m=1),并提示如下代码:

print `echo /usr/bin/php -q longThing.php | at now`; 

但不幸的是,我的脚本没有做任何事情,并添加2>&1后,我得到以下回应:

sh: at: command not found

我已经搜索了很多解决这个问题,但找不到任何解决方案。

+1

标题提到了一个cron工作,但是这有没有关系呢? –

+0

'crontab'用于定期运行程序,例如每天,每个小时等。这就是你想要的吗? – Barmar

+0

你们俩都是对的,这不是一个正常的时间表。我只是想运行一个后台任务,而不是一个时间表。 – Stefan

回答

1

您应该提供at命令的全限定路径,例如/bin/at

如果您不确定路径,通常可以在命令行键入which at以查找命令的路径。

+0

Oké,听起来很清楚。所以我应该通过命令行找到它,但不幸的是我现在无法做到这一点。假设pad是/ bin/at,那么新脚本是: print'echo/usr/bin/php -q longThing.php |/bin/at now'; – Stefan

+0

是的,应该这样做。 – ianjs

+0

我不得不安装at命令,现在at命令可以,但是会得到另一个错误:sh:now:command not found – Stefan