• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Prayer

            在一般中尋求卓越
            posts - 1256, comments - 190, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            僵尸進程和孤兒進程

            Posted on 2009-03-13 20:13 Prayer 閱讀(369) 評論(0)  編輯 收藏 引用 所屬分類: LINUX/UNIX/AIX
                僵尸進程:一個子進程在其父進程還沒有調用wait()或waitpid()的情況下退出。這個子進程就是僵尸進程。
                孤兒進程:一個父進程退出,而它的一個或多個子進程還在運行,那么那些子進程將成為孤兒進程。孤兒進程將被init進程(進程號為1)所收養,并由init進程對它們完成狀態收集工作。
                僵尸進程將會導致資源浪費,而孤兒則不會。



            子進程持續10秒鐘的僵尸狀態(EXIT_ZOMBIE)
            ------------------------------------------------------
            #include <sys/types.h>
            #include <unistd.h>
            #include <stdio.h>
            #include <stdlib.h>

            main()
            {
                pid_t pid;
                pid = fork();
                if(pid < 0)
                    printf("error occurred!\n");
                else if(pid == 0) {
                    printf("Hi father! I'm a ZOMBIE\n");
                    exit(0);      //(1)
                }
                else {
                    sleep(10);
                    wait(NULL);   //(2)
                }
            }

            (1) 向父進程發送SIGCHILD信號
            (2) 父進程處理
            SIGCHILD信號

            執行exit()時根據其父進程的狀態決定自己的狀態:
                如果父進程已經退出(沒有wait),則該子進程將會成為孤兒進程過繼給init進程
                如果其父進程還沒有退出,也沒有wait(),那么該進程將向父進程發送SIGCHILD信號,進入僵尸狀態等待父進程為其收尸。如果父進程一直沒有執行wait(),那么該子進程將會持續處于僵尸狀態。




            子進程將成為孤兒進程
            ------------------------------------------------------
            #include <sys/types.h>
            #include <unistd.h>
            #include <stdio.h>
            #include <stdlib.h>

            main()
            {
                pid_t pid;
                pid = fork();
                if(pid < 0)
                    printf("error occurred!\n");
                else if(pid == 0) {
                    sleep(6);
                    printf("I'm a orphan\n");
                    exit(0);
                }
                else {
                    sleep(1);
                    printf("Children Bye!\n");
                }
            }

            # ./a.out
            Children Bye!
            # I'm a orphan
            (回車后將會進入#)
            #
            人妻久久久一区二区三区| 波多野结衣久久| 久久久精品视频免费观看| 国产精品久久婷婷六月丁香| 欧美大香线蕉线伊人久久| 曰曰摸天天摸人人看久久久| 欧美与黑人午夜性猛交久久久 | 久久久久久A亚洲欧洲AV冫| 香蕉久久夜色精品国产2020| 99久久精品国产高清一区二区 | 欧美与黑人午夜性猛交久久久 | 亚洲精品无码久久一线| 狠狠综合久久综合中文88| 一本久久a久久精品vr综合| 国产综合精品久久亚洲| 国产精品对白刺激久久久| 青青热久久国产久精品| 久久综合丁香激情久久| 久久99精品国产麻豆| 伊人久久久AV老熟妇色| 中文字幕精品久久久久人妻| 欧美亚洲国产精品久久蜜芽 | 色诱久久久久综合网ywww| 亚洲国产成人久久精品99| 久久精品国产一区二区| 一级做a爰片久久毛片16| 久久九九青青国产精品| 欧美亚洲国产精品久久蜜芽| 国产一级持黄大片99久久| 国产精品久久久久久久久| 久久91精品国产91久久小草| MM131亚洲国产美女久久| 9久久9久久精品| 亚洲精品国产成人99久久| 欧美亚洲国产精品久久蜜芽| 国产91久久综合| 日日狠狠久久偷偷色综合96蜜桃| a级毛片无码兔费真人久久| 久久人妻少妇嫩草AV蜜桃| 要久久爱在线免费观看| 狠狠综合久久综合88亚洲|