我搜索了很多以找到確切的答案,但沒有找到任何。使用可執行函數的php後臺進程
很多人提到我們應該在&之後不要等待迴應。
例如運行bg.php背景,此建議:
exec("/usr/bin/php bg.php &");
,但它不爲我工作。主腳本等待完成執行bg.php。
我也讀過某處寫bg.php在日誌文件中輸出,但我的後臺腳本不會產生任何輸出。它執行一些過程,然後在數據庫中寫入內容。
我只想我的腳本運行bg.php,不要等它結束。
請幫助我,包括正確的代碼。
我搜索了很多以找到確切的答案,但沒有找到任何。使用可執行函數的php後臺進程
很多人提到我們應該在&之後不要等待迴應。
例如運行bg.php背景,此建議:
exec("/usr/bin/php bg.php &");
,但它不爲我工作。主腳本等待完成執行bg.php。
我也讀過某處寫bg.php在日誌文件中輸出,但我的後臺腳本不會產生任何輸出。它執行一些過程,然後在數據庫中寫入內容。
我只想我的腳本運行bg.php,不要等它結束。
請幫助我,包括正確的代碼。
你必須重新路由程序輸出過的地方,通常的/ dev/null的
exec($cmd . " > /dev/null &");
你有沒有考慮過使用屏幕?您可以啓動在分離進程中運行的屏幕會話。
screen -d -m -S my_bg_session /usr/bin/php bg.php
然後,你可以稍後連接到它,如果它仍在運行:
screen -r my_bg_session
工作正常!但什麼是/ dev/null目錄?該命令是否將輸出寫入文件? – Aliweb
/dev/null只是丟棄發送給它的數據,如果需要程序輸出,您可以選擇將其路由到某個文件 – ninaj