無阻塞的同時Shell 指令執行
許多應用程式需要在背景執行計算密集型任務,特別是在處理使用者互動時。在 PHP 中,shell_exec 函數通常用於此目的。但是,當任務需要很長時間才能完成時,可能會出現問題,因為它會阻塞 PHP 腳本的執行流程。有沒有一種方法可以在不等待 shell 命令完成的情況下執行它?
帶重定向的並發執行
是的,可以在不等待的情況下並發執行 shell 命令阻止 PHP 腳本。這可以透過將命令的輸出和錯誤流重新導向到 null 來實現。操作方法如下:
指令末端的 & 符號告訴 shell 在背景執行指令。的> /dev/null 和 2> /dev/null 重定向會丟棄標準輸出和標準錯誤流,從而有效地靜默命令的任何輸出。
並發執行的好處
並發執行命令有幾個好處:
注意: 將 stdout 和 stderr 流重新導向到 /dev/null 表示您將無法存取任何輸出或來自指令的錯誤訊息。如果您需要擷取這些,請使用替代方法,例如管道或進程監控。
以上是如何在 PHP 中並發執行 Shell 指令而不阻塞?的詳細內容。更多資訊請關注PHP中文網其他相關文章!