如何讓PHP腳本在后臺運行而不受終端關閉的影響?

如何讓PHP腳本在后臺運行而不受終端關閉的影響?

如何讓php腳本在后臺持續運行?

許多php腳本需要在后臺持續運行,不受終端關閉的影響。例如,一個簡單的PHP腳本(例如s.php):

<?php cli_set_process_title('queue-server');  while(true) {     // ... 你的代碼 ... } ?>

直接使用php s.php運行,終端關閉后腳本也會停止。 要實現類似workerman -d的后臺運行效果,需要借助系統命令,而非PHP本身的功能。PHP解釋器本身不具備守護進程管理能力,而workerman工具是構建于PHP之上的應用,自帶后臺運行機制。

要讓PHP腳本在后臺運行,可以使用nohup命令:

nohup php s.php 2>&1 &

此命令將s.php腳本置于后臺運行。2>&1將標準錯誤輸出重定向到標準輸出,&將進程放入后臺。即使關閉終端,腳本仍會繼續執行。

立即學習PHP免費學習筆記(深入)”;

需要注意的是,PHP和Workerman是不同的工具,不能直接比較。Workerman、dockerredis、nginx等是應用層工具,自帶后臺運行配置。PHP作為腳本語言,不負責管理守護進程。 如需更復雜的后臺運行邏輯,可在PHP腳本中自行實現守護進程。

? 版權聲明
THE END
喜歡就支持一下吧
點贊15 分享