ホームページ >バックエンド開発 >PHPチュートリアル >ユーザーをブロックせずに PHP でシェル コマンドを非同期に実行するにはどうすればよいですか?
shell_exec を使用したシェル コマンドの非同期実行
時間のかかるタスクをバックグラウンドで実行することは、Web アプリケーションでは非常に重要です。たとえば、ユーザーのリクエストにより、ユーザーの対話をブロックすべきではない、計算集約型のプロセスがトリガーされる場合があります。 PHP 関数shell_exec はシェル コマンドを実行する便利な方法ですが、コマンドが完了するまでスクリプトが待機する必要があり、ユーザー エクスペリエンスを妨げる可能性があります。
これを修正するには、shell_exec 呼び出しを変更します。 。コマンドに「> /dev/null 2>/dev/null &」を追加すると、完了を待たずにコマンドを実行できます。
次の例は、この手法を示しています。
shell_exec('php measurePerformance.php 47 844 [email protected] > /dev/null 2>/dev/null &');
この変更により、コマンドの標準出力および標準エラー ストリームも破棄されることに注意してください。出力のキャプチャが必要な場合は、プロセス制御ブロック (PCB) の使用やデーモン プロセスの実装などの代替手法を検討できます。
以上がユーザーをブロックせずに PHP でシェル コマンドを非同期に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。