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

PHP でシェル コマンドを非同期に実行するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-01 15:27:11433ブラウズ

How Can I Run Shell Commands Asynchronously in PHP?

PHP を使用してバックグラウンドでシェル コマンドを実行する

シェル スクリプトの実行など、プロセス集約型のタスクを実行する場合、多くの場合、次のことが望ましいです。バックグラウンドでタスクを完了します。これにより、ユーザーはタスクの完了を待たずに Web サイトまたはアプリケーションの使用を続けることができます。

shell_exec() の使用

PHP のshell_exec() 関数は、シェルコマンドを実行し、その出力を返します。ただし、shell_exec() では、続行する前にコマンドが完了するまでスクリプトが待機する必要があります。

バックグラウンドでのコマンドの実行

コマンドを実行せずにバックグラウンドでシェル コマンドを実行するには完了するのを待っている場合は、次のコードを使用します。

shell_exec('php measurePerformance.php 47 844 [email protected] > /dev/null 2>/dev/null &');

このコードは、次のパラメータをファイルの最後に追加します。 shell_exec() コマンド:

  • > /dev/null 2>/dev/null: コマンドの標準出力とエラー出力を /dev/null にリダイレクトし、それらを事実上破棄します。
  • &: コマンドをバックグラウンドで実行し、スクリプトを続行できるようにします。コマンドが完了するのを待っています。

注: このメソッドは、コマンドの出力またはステータス コード。コマンドの結果にアクセスする必要がある場合は、nohup コマンドで exec() を使用するか、バックグラウンド タスク用の専用プロセスを作成するなど、別のアプローチを使用することを検討してください。

以上がPHP でシェル コマンドを非同期に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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