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

スクリプトをブロックせずに PHP コマンドを非同期に実行するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-05 11:58:09309ブラウズ

How Can I Execute PHP Commands Asynchronously Without Blocking the Script?

結果を待たずに PHP コマンドを実行する

PHP で exec() を使用してコマンドを実行すると、通常、スクリプトはコマンドが完了するまで待機します。 。ただし、コマンドを非同期に実行して、結果を待たずにスクリプトを続行できる方法があります。

ドキュメントでは、標準出力と標準エラーの両方を /dev/null にリダイレクトして、バックグラウンドで実行できると説明しています。これを実現するコマンド:

> /dev/null 2>&1 &

これにより、コマンドが PHP をブロックする出力を生成しなくなります。 script.

または、完全に独立したプロセスを開始するには、次のコマンドを使用できます。

exec('bash -c "exec nohup setsid your_command > /dev/null 2>&1 &"');

このコマンドは、指定されたコマンドを実行する新しい Bash シェルを作成します。プロセスは現在の Apache スレッドから切り離され、ページが終了しても実行を継続します。

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

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