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