ホームページ >バックエンド開発 >PHPチュートリアル >実行をブロックせずに PHP でシェル スクリプトを非同期的に実行するにはどうすればよいですか?
PHP で非同期シェル実行を実行する方法
PHP からシェル スクリプトを実行すると、時間がかかるため、パフォーマンスの問題が発生することがよくあります。これを軽減するには、PHP スクリプトをブロックせずにバックグラウンド プロセスでシェル スクリプトを実行することが望ましいです。
簡単な解決策の 1 つは、exec 呼び出しの後にアンパサンド (&) 記号を使用することです。 「&」演算子はプロセスをバックグラウンドにし、シェル スクリプトの完了を待たずに PHP スクリプトの実行を続行できるようにします。
たとえば、次のコマンドはバックグラウンドで実行するシェル スクリプトを送信します。
exec("shell_script.sh &");
PHP 環境での出力メッセージとエラー メッセージの蓄積を防ぐために、次のコマンドを使用して標準出力と標準エラーの両方を /dev/null にリダイレクトすることをお勧めします。 command:
exec("shell_script.sh > /dev/null 2>/dev/null &");
または、単一のアンパサンドで stdio と stderr の両方を /dev/null に同時にリダイレクトできます。
exec("shell_script.sh &> /dev/null &");
これらの手法を採用すると、シェル スクリプトを非同期で実行できます。 PHP。時間のかかるシェル操作中に PHP スクリプトの応答性を維持できるようにします。
以上が実行をブロックせずに PHP でシェル スクリプトを非同期的に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。