• <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 2008-08-21 18:24 Prayer 閱讀(490) 評論(0)  編輯 收藏 引用 所屬分類: LINUX/UNIX/AIX

            僵尸進程
            --是指一個已經終止、但是其父進程尚未對其進行善后處理(獲取終止進程的有關信息,釋放它仍占用的資源)的進程被稱為"僵尸進程"(zombie)。

            怎樣產生僵尸進程的:
                    一個進程在調用exit命令結束自己的生命的時候,其實它并沒有真正的被銷毀,而是留下一個稱為僵尸進程(Zombie)的數據結構(系統調用exit, 它的作用是使進程退出,但也僅僅限于將一個正常的進程變成一個僵尸進程,并不能將其完全銷毀)。
                    在Linux進程的狀態中,僵尸進程是非常特殊的一種,它已經放棄了幾乎所有內存空間,沒有任何可執行代碼,也不能被調度,僅僅在進程列表中保留一個位置,記載該進程的退出狀態等信息供其他進程收集,除此之外,僵尸進程不再占有任何內存空間。它需要它的父進程來為它收尸,如果他的父進程沒安裝SIGCHLD信號處理函數調用wait或waitpid()等待子進程結束,又沒有顯式忽略該信號,那么它就一直保持僵尸狀態,如果這時父進程結束了,那么init進程自動會接手這個子進程,為它收尸,它還是能被清除的。但是如果如果父進程是一個循環,不會結束,那么子進程就會一直保持僵尸狀態,這就是為什么系統中有時會有很多的僵尸進程。

            怎么查看僵尸進程:
            利用命令ps,可以看到有父進程ID為1的進程是孤兒進程;s(state)狀態為Z的是僵尸進程。

            注意:孤兒進程(orphan process)是尚未終止但已停止(相當于前臺掛起)的進程,但其父進程已經終止,由init收養;而僵尸進程則是已終止的進程,其父進程不一定終止。

            怎樣來清除僵尸進程:
            1.改寫父進程,在子進程死后要為它收尸。具體做法是接管SIGCHLD信號。子進程死后,會發送SIGCHLD信號給父進程,父進程收到此信號后,執行 waitpid()函數為子進程收尸。這是基于這樣的原理:就算父進程沒有調用wait,內核也會向它發送SIGCHLD消息,盡管對的默認處理是忽略, 如果想響應這個消息,可以設置一個處理函數。
            2.把父進程殺掉。父進程死后,僵尸進程成為"孤兒進程",過繼給1號進程init,init始終會負責清理僵尸進程,關機或重啟后所有僵尸進程都會消失。

            避免Zombie Process的方法:
            1)在SVR4中,如果調用signal或sigset將SIGCHLD的配置設置為忽略,則不會產生僵死子進程。另外,使用SVR4版的sigaction,則可設置SA_NOCLDWAIT標志以避免子進程僵死。 Linux中也可使用這個,在一個程序的開始調用這個函數signal(SIGCHLD,SIG_IGN)。
            2)調用fork兩次。
            3)用waitpid等待子進程返回。

            久久精品中文字幕第23页| 精品久久久久久久久午夜福利| 久久精品无码一区二区三区| 久久久久久久久无码精品亚洲日韩| 精品综合久久久久久97超人 | 国产高潮国产高潮久久久| A狠狠久久蜜臀婷色中文网| 99久久人人爽亚洲精品美女| 国产精品中文久久久久久久| 国产精品久久久久aaaa| 久久综合久久性久99毛片| 狠狠色丁香婷综合久久| 中文字幕日本人妻久久久免费| 欧美日韩中文字幕久久伊人| 亚洲精品成人久久久| 久久成人18免费网站| 久久久久人妻一区精品色| 久久久久久久综合综合狠狠| 国产韩国精品一区二区三区久久| 99久久综合国产精品免费| 99久久国产亚洲高清观看2024 | 欧美日韩精品久久久久 | 91精品日韩人妻无码久久不卡| 久久大香香蕉国产| 中文字幕日本人妻久久久免费 | 久久午夜电影网| 77777亚洲午夜久久多喷| 99久久国产综合精品女同图片 | 欧美日韩精品久久久免费观看| 青青草原1769久久免费播放| 久久丫忘忧草产品| 久久伊人精品一区二区三区| 久久中文字幕视频、最近更新| 久久久久无码精品国产app| 久久se精品一区精品二区| 国产精品久久午夜夜伦鲁鲁| 久久久久99精品成人片试看 | 99久久婷婷免费国产综合精品| 久久人人爽人人爽人人片AV不| 婷婷伊人久久大香线蕉AV | 久久777国产线看观看精品|