ホームページ >バックエンド開発 >PHPチュートリアル >実行をブロックせずに PHP でシェル スクリプトを非同期的に実行するにはどうすればよいですか?

実行をブロックせずに PHP でシェル スクリプトを非同期的に実行するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-25 08:11:33728ブラウズ

How to Run Shell Scripts Asynchronously in PHP Without Blocking Execution?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。