0

私は最も基本的なスクリプトを持っています:

$pid = pcntl_fork();
if ($pid == -1) {
     die('could not fork');
} else if ($pid) {
     // we are the parent
     echo "parent done";
     pcntl_wait($status); //Protect against Zombie children
     echo "all done";
} else {
     // we are the child
     echo "Child finished";
}

これを実行すると、出力は常に「子が終了しました」になります。私はこれをlighttpdサーバーで実行しています。

4

1 に答える 1

0

子からシグナルを受け取っている可能性がありますが、終了ステータスではありません。次のようなことを試してください。

do {
    pcntl_wait($status);
} while (!pcntl_wifexited($status));

ステータスが出口(SIGCHILD)であることを確認します。

于 2009-09-28T18:10:13.760 に答える