我想在後臺運行一個php腳本,因爲它需要很多時間,我不想等待它。如何在後臺運行一個php進程?
這個問題涉及到:
php execute a background process
我試圖讓我的Linux CentOS的機器上這項工作,但不幸的是它似乎並不奏效。
這是我的代碼:
$cmd = 'php '.realpath($_SERVER["DOCUMENT_ROOT"]).'/test/sample.php';
exec(sprintf("%s > %s 2>&1 & echo $! >> %s", $cmd, $outputfile, $pidfile));
exec(sprintf("$s > $s 2>&1 & echo $1", $cmd, $outputfile),$pidArr);
sleep(2);
print_r($outputfile);
print_r($pidfile);
我包括睡眠(2)以確保sample.php腳本完成。 sample.php只包含echo'Hello world';我嘗試了兩個exec選項,但都沒有工作。上面的腳本不顯示任何輸出。
我試圖在linux命令行中運行相同的$ cmd,它向我展示了sample.php腳本的輸出。
我想先做這個運行,但另外我想發送變量到sample.php腳本。
非常感謝您的幫助。
令牌/ cron:令牌可以是文件或數據庫條目中的一行或類似的東西,長期運行的cron作業搜索並控制其行爲通常是運行後臺的理想選擇來自瀏覽器的進程。管理員可以更好地控制cron作業運行的頻率,它擁有的權限以及它在做什麼。 – Paul
謝謝,但我想在用戶訪問此php腳本時立即運行它。 – BastiaanWW