0

run.phpブラウザから1回実行すると、なぜ複数のプロセスがあるのか​​わかりません

PHPコードには、次のものがあります。

run.php

<?php
shell_exec("php theprocess.php > /dev/null 2>&1 &");
?>

theprocess.php

<?php
$z = 1;
while ($z <= 20) {
    echo $z . "\n";
    $z++;
    sleep(3);
}
?>

ブラウザからrun.phpを実行します(例:http://localhost/run.php

次に、次のように入力しました:ps aux | grep php

username@ [~]# ps aux | grep php
username 27272  0.0  1.5  89504 64468 ?        R    17:33   0:00 php theprocess.php
username 27274  0.0  1.2  89504 49872 ?        R    17:33   0:00 php theprocess.php
username 27276  0.0  0.6  89504 28676 ?        R    17:33   0:00 php theprocess.php
username 27278  0.0  0.0  22280  3704 ?        R    17:33   0:00 php theprocess.php
username 27280  0.0  0.0   1940   508 ?        S+   17:33   0:00 grep php

なぜ1つ以上のtheprocess.phpプロセスが表示されているのかわかりませんか?

また、なぜそれがまだバックグラウンドで実行されているのですか?タスクを終了して終了する必要がtheprocess.phpあります。どうすればそれができますか?

4

1 に答える 1

1

私は問題を修正しました!

Web ページからスクリプトを実行すると、PHP cli として扱われません。

交換

shell_exec("/usr/bin/php theprocess.php > /dev/null 2>&1 &");

shell_exec("/usr/bin/php-cli theprocess.php > /dev/null 2>&1 &");

バックグラウンドで複数のプロセスを実行する必要がなくなりました。

于 2011-07-07T19:29:11.073 に答える