2014-05-10 88 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