国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

for循環(huán)中主進(jìn)程fork子進(jìn)程,為什么主進(jìn)程會退出?

loc1992
<?php 

    \umask(0);

    $pid = \pcntl_fork();

    if (-1 === $pid) {
        throw new Exception('Fork fail');
    } elseif ($pid > 0) {

        exit(0);
    }

    if (-1 === \posix_setsid()) {
        throw new Exception("Setsid fail");
    }

    $pid = \pcntl_fork();
    if (-1 === $pid) {
        throw new Exception("Fork fail");
    } elseif (0 !== $pid) {
        exit(0);
    }

    $stdoutFile = __DIR__."/io.log";
    global $STDERR, $STDOUT;
    // 重定向標(biāo)準(zhǔn)輸出和錯誤輸出
    fclose(STDOUT);
    fclose(STDERR);
    $STDOUT = fopen($stdoutFile, 'a');
    $STDERR = fopen($stdoutFile, 'a');

    for($i = 0; $i < 3; $i++)
    {
        $child_pid = pcntl_fork();

        if($child_pid > 0)
        {
            // 主進(jìn)程
           \cli_set_process_title('test Master: '.getmypid());

        }else{
            // 子進(jìn)程
            \cli_set_process_title('test Sub: '.getmypid());
            // break; // 使用break沒有問題
            // 這里Worker.php源碼里面也是阻塞的
            // 為什么我的這里使用阻塞,Master進(jìn)程會退出,子進(jìn)程變成孤兒了
            while (1) {
                $pid = getmypid();
                $ppid = posix_getppid();
                echo "pid:$pid --- ppid:$ppid".PHP_EOL;
                sleep(5);
            }
        }
    }

代碼是抽取Worker類的,搞不明白為什么主進(jìn)程會退出,求指點。

3394 1 0
1個回答

loc1992

搞懂了,主進(jìn)程沒有阻塞直接執(zhí)行完腳本就退出了。

  • 暫無評論
年代過于久遠(yuǎn),無法發(fā)表回答
??