五月天激情丁香,国产精品2019,国产成人精品亚洲2020,国产精品免费视频一区二区三区,开心久久婷婷综合中文字幕,天堂视频在线观看免费完整版

僵尸進(jìn)程

僵尸進(jìn)程是當(dāng)子進(jìn)程比父進(jìn)程先結(jié)束,而父進(jìn)程又沒(méi)有回收子進(jìn)程,釋放子進(jìn)程占用的資源,此時(shí)子進(jìn)程將成為一個(gè)僵尸進(jìn)程。

在unix進(jìn)程管理中,如果你新開(kāi)的子進(jìn)程運(yùn)行結(jié)束,父進(jìn)程將會(huì)收到一個(gè)SIGCHLD信號(hào),子進(jìn)程成為僵尸進(jìn)程(保存了進(jìn)程的狀態(tài)等信息),等待父進(jìn)程的處理,如果父進(jìn)程一直不處理,該進(jìn)程將會(huì)一直存在,占用系統(tǒng)進(jìn)程表項(xiàng),如果僵尸進(jìn)程過(guò)多,導(dǎo)致系統(tǒng)沒(méi)有可用的進(jìn)程表項(xiàng),于是再也無(wú)法運(yùn)行其他的程序

為了更容易理解,本文使用pcntl擴(kuò)展進(jìn)行進(jìn)程管理

例如:

<?php
$num = 1;
$str = "EasySwoole,Easy學(xué)swoole\n";
$pid = pcntl_fork();
if ($pid > 0) {//主進(jìn)程代碼
    echo "我是主進(jìn)程,id是".getmypid().",子進(jìn)程的pid是{$pid}\n";
    pcntl_async_signals(true);
    pcntl_signal(SIGCHLD, function () {
        echo '子進(jìn)程退出了,請(qǐng)及時(shí)處理' . PHP_EOL;
    });
    while (1) {//主進(jìn)程一直不退出
        sleep(1);
    }

} elseif ($pid == 0) {
    echo "我是子進(jìn)程,我的pid是" . getmypid() . "\n";
} else {
    echo "我是主進(jìn)程,我慌得一批,開(kāi)啟子進(jìn)程失敗了\n";
}

使用ps查看僵尸進(jìn)程:

ps -A -ostat,ppid,pid,cmd |grep -e '^[Zz]'

輸出:

Z+     7136   7137 [php] <defunct>

當(dāng)主進(jìn)程退出之后,子進(jìn)程將會(huì)被init接管并處理

回收僵尸進(jìn)程

回收僵尸進(jìn)程

通過(guò)pcntl_wait和pcntl_waitpid等函數(shù)等待子進(jìn)程結(jié)束

<?php
$pid = pcntl_fork();

if ($pid == -1) {
    die('fork error');
} else if ($pid > 0) {
//父進(jìn)程阻塞著等待子進(jìn)程的退出
//    pcntl_wait($status);
//    pcntl_waitpid($pid, $status);

//非阻塞方式
//    pcntl_wait($status, WNOHANG);

//    pcntl_waitpid($pid, $status, WNOHANG);

} else {
    sleep(3);
    echo "child \r\n";
    exit;
}

通過(guò)signal函數(shù)為SIGCHLD安裝handler,因?yàn)樽舆M(jìn)程結(jié)束后,父進(jìn)程會(huì)收到該信號(hào),可以在handler中調(diào)用pcntl_wait或pcntl_waitpid來(lái)回收.

<?php
pcntl_async_signals(true);

pcntl_signal(SIGCHLD, function () {
    echo "SIGCHLD \r\n";
    //阻塞方式
    pcntl_wait($status);
    //pcntl_waitpid(-1, $status);

    //非阻塞
    //pcntl_wait($status, WNOHANG);
    //pcntl_waitpid(-1, $status, WNOHANG);
});

$pid = pcntl_fork();

if ($pid == -1) {
    die('fork error');
} else if ($pid) {
    sleep(10);
} else {
    sleep(3);
    echo "child \r\n";
    exit;
}

忽略掉子進(jìn)程結(jié)束信號(hào),交給init進(jìn)程管理

<?php
pcntl_async_signals(true);

pcntl_signal(SIGCHLD, SIG_IGN);

$pid = pcntl_fork();
if ($pid == -1) {
    die('fork error');
} else if ($pid>0) {
    while(1){
        sleep(1);
    }
} else {
    sleep(3);
    echo "child \r\n";
    exit;
}
主站蜘蛛池模板: 国产一级内谢a级高清毛片 国产一级免费在线观看 | a男人的天堂久久a毛片 | 精品福利视频一区二区三区 | 97理论三级九七午夜在线观看 | 国内偷拍视频网站 | 日韩午夜免费 | 日本道在线| 97se亚洲国产综合自在线 | 亚洲成a人片77777在线播放 | 网曝门精品国产事件在线观看 | 九九九精品视频免费 | 国产高清免费视频 | 日韩城人免费 | 视频精品一区二区 | 玖玖中文 | 欧美精品人爱c欧美精品 | 潦草影视在线观看 | 国产精品九九免费视频 | 国产精品视频一区二区三区w | 久久99精品国产99久久 | a级毛片免费完整视频 | 日韩精品福利片午夜免费 | 国产欧美一区二区三区观看 | 福利视频免费看 | 你懂的成人 | 久久这里只有精品久久 | 日本精品久久久免费高清 | 99视频免费在线观看 | 成人乱码一区二区三区 | 狠狠干综合 | 久久综合精品国产一区二区三区 | 黄视频免费观看 | 精品九九久久国内精品 | 久久福利资源站免费观看i 久久福利资源国产精品999 | 精品无人区乱码一区二区三区手机 | 青草青视频在线观看 | 四虎影视国产精品一区二区 | 99久久久久国产精品免费 | 久久99国产精品久久99软件 | 黄色小视频网 | 国产欧美在线观看一区 |