首頁 > 後端開發 > php教程 > 如何在 PHP 中非同步執行 Shell 腳本而不阻塞請求?

如何在 PHP 中非同步執行 Shell 腳本而不阻塞請求?

Linda Hamilton
發布: 2024-12-23 18:05:16
原創
956 人瀏覽過

How Can I Run a Shell Script Asynchronously in PHP Without Blocking the Request?

PHP 中的非同步Shell 執行:無需等待,只需執行

問題陳述:

設計一個PHP 腳本無縫呼叫shell 腳本,而不會影響PHP 請求的效能。與傳統的執行方式不同,此腳本不應該等待 shell 腳本完成,從而允許 PHP 請求獨立退出。

解決方案:

實現非同步shell 執行,採用以下技術:

  1. 呼叫進程後台: shell 腳本呼叫的「&」字元。這會將進程置於後台,允許 PHP 腳本繼續執行而無需等待完成。
  2. 重定向輸出和錯誤流: 將「> /dev/null 2>/dev/null」加入shell腳本呼叫。這會將標準輸出和錯誤流重定向到“/dev/null”,從而有效地丟棄它們。

這種組合語法可確保 shell 腳本在背景非同步執行,而不會延遲 PHP 請求。

範例:

exec("script.sh > /dev/null 2>/dev/null &");
登入後複製

替代語法:

另一個重新導向方法的替代方法是使用「&> /dev/null &」。這種方法透過在後台進程時將標準輸出和錯誤流重定向到“/dev/null”來實現相同的結果。

以上是如何在 PHP 中非同步執行 Shell 腳本而不阻塞請求?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板