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

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

Barbara Streisand
リリース: 2024-12-17 21:08:11
オリジナル
160 人が閲覧しました

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

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

結果を待たずに PHP コマンドを実行するには、コマンドを送信しないように作成する必要があります。出力を PHP スクリプトに戻します。これを実現するには、標準出力 (stdout) と標準エラー (stderr) の両方を「/dev/null」にリダイレクトし、コマンドをバックグラウンドで実行します。

次のコマンドでこれを実現します。

> /dev/null 2>&1 &
ログイン後にコピー

Apache スレッドから独立した別個のプロセスとしてコマンドを実行するには、次のコマンドを実行できます。使用:

exec('bash -c "exec nohup setsid your_command > /dev/null 2>&1 &"');
ログイン後にコピー

このコマンドは:

  • Bash シェル コマンドを実行します。
  • Bash シェル内で指定されたコマンド (「your_command」) を開始します。
  • stdout と stderr を次のようにリダイレクトします。 "/dev/null".
  • "nohup" と "setsid" を使用してコマンドを分離プロセスにします。

これらの手法を利用することで、PHP はスクリプトをブロックせずにコマンドを実行できます。または Apache スレッドを実行し、後続のコマンドの処理を続行します。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート