1

現時点では、次のようなコード行があります。

system("/usr/bin/php myphpscript.php --param=".val);

スクリプトが終了するのを待たにphpを作成する方法はありますか?代わりに先に進みますか?

これはループ移動メールで、myphpscript.php がメールを解析しています。そして、毎回 myphpscript.php が終了するのを待ちたくありません- ただ開始して次に進みましょう!

ソリューションの更新

ここで答えを見つけました:

http://www.php.net/manual/en/function.exec.php#101506

passthru("/usr/bin/php myphpscript.php --param=".val." >> /dev/null 2>&1 &");

経験値:

/dev/ヌル

STDOUT を別のものに書き込む必要がありました。そうしないと、スクリプトが終了するまで PHP がハングします。そのため、代わりに /dev/null に書き込みます。

2>&1

エラーを STDOUT にリダイレクトする

&

このスレッドで言及されているように、「バックグラウンドで実行」します。

良い一日を過ごしてください!

  • ジャック

  • ジャック

4

2 に答える 2

0

これはうまくいくはずです

exec("/usr/bin/php myphpscript.php --param=".val . '&');
于 2011-05-23T10:15:49.953 に答える
0

バックグラウンド コマンドを最後にスローすると、スクリプトが続行されます。

system("/usr/bin/php myphpscript.php --param=".val . "&");

親phpスクリプトが終了すると、このサブプロセスが強制終了される可能性があるため、安全のためにnohupも追加します。

system("nohup /usr/bin/php myphpscript.php --param=".val . "&");

于 2011-05-23T10:16:31.950 に答える