• <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++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            Defunct進程(死進程)

            Posted on 2009-04-14 15:30 Prayer 閱讀(1076) 評論(0)  編輯 收藏 引用 所屬分類: LINUX/UNIX/AIX
            IBM網站有關Defunct進程(死進程)的問題確定

            內容提要:
            本文介紹了為什么會產生defunct進程,如何確定引起defunct進程的原因,以及當需要進一步確定問題時應提供何種信息給軟件供應商。

            說明:
            1.Defunct進程的產生
            在AIX操作系統實施的進程結構中,每一個進程都有一個父進程。當一個進程結束時會通知它的父進程,從而該進程的父進程會收集該進程的狀態信息。若父進程在一定的時間內無法收集到狀態信息,則系統中就會殘留一個defunct進程。
            因為defunct進程是已經停止的,所以使用殺死進程的方法來殺defunct進程是無效的。defunct進程不使用CPU或硬盤等系統資源,而只使用極少量的內存用于存儲退出狀態和資源使用信息。

            #who -d可以看到好多
            # who -d
            . . Aug 10 21:33 . 5480 id=load64b term=0 exit=0
            . . Aug 10 21:33 . 15494 id=rc term=0 exit=0
            . . Aug 10 21:33 . 15496 id=fbcheck term=0 exit=0
            . . Aug 10 21:33 . 16258 id=harc term=0 exit=0
            . . Aug 10 21:33 . 16260 id=rcnsr term=0 exit=0
            . . Aug 10 21:33 . 17584 id=piobe term=0 exit=0
            . . Aug 10 21:33 . 18588 id=logsymp term=0 exit=0
            . . Aug 10 21:33 . 17076 id=pmd term=0 exit=0
            . . Aug 10 21:33 . 17078 id=httpdli term=0 exit=0
            . . Aug 10 21:33 . 18326 id=diagd term=0 exit=0
            . . Aug 10 21:33 . 20384 id=rcpkcs1 term=0 exit=0
            . . Aug 10 21:34 . 20386 id=imnss term=0 exit=0
            . . Aug 10 21:34 . 20132 id=imqss term=0 exit=0
            . . Aug 10 21:33 . 21430 id=l2 term=0 exit=0
            . . Aug 10 21:34 . 19352 id=i4ls term=0 exit=0
            . . Aug 10 21:34 . 19354 id=hacmp60 term=0 exit=0
            . . Aug 10 21:35 . 25304 id=rctcpip term=0 exit=0
            . . Aug 10 21:35 . 24900 id=rcnfs term=0 exit=0
            . . Aug 10 21:35 . 27356 id=qdaemon term=0 exit=0
            . . Aug 10 21:35 . 27358 id=writesr term=0 exit=0
            . . Aug 10 21:35 . 27360 id=clinit term=0 exit=0
            . . Aug 10 21:35 . 27362 id=pst_cli term=0 exit=0
            . pts/2 Sep 02 18:24 5:02 33348 id=pts/2 term=1 exit=0
            . pts/5 Sep 01 10:31 2:24 40934 id=pts/5 term=1 exit=0
            . pts/6 Sep 02 15:43 6:23 46092 id=pts/6 term=0 exit=0
            . pts/7 Sep 02 15:42 6:25 51382 id=pts/7 term=1 exit=0
            . pts/8 Sep 01 17:58 old 38490 id=pts/8 term=0 exit=0
            . pts/9 Sep 01 17:06 old 24254 id=pts/9 term=1 exit=0
            . pts/10 Sep 01 15:39 old 38232 id=pts/10 term=0 exit=0

            #man who
            ....
            -d Displays all processes that have expired without being regenerated by init.
            The exit field appears for dead processes and contains the termination and exit
            determining why a process ended by looking at the error number returned by the
            application.)
            ...

            IBM網站有關Defunct進程(死進程)的問題確定
            Document #: 2311123000005

            Body:
            [標題]有關Defunct進程(死進程)的問題確定

            內容提要:
            本文介紹了為什么會產生defunct進程,如何確定引起defunct進程的原因,以及當需要進一步確定問題時應提供何種信息給軟件供應商。

            說明:
            1.Defunct進程的產生
            在AIX操作系統實施的進程結構中,每一個進程都有一個父進程。當一個進程結束時會通知它的父進程,從而該進程的父進程會收集該進程的狀態信息。若父進程在一定的時間內無法收集到狀態信息,則系統中就會殘留一個defunct進程。
            因為defunct進程是已經停止的,所以使用殺死進程的方法來殺defunct進程是無效的。defunct進程不使用CPU或硬盤等系統資源,而只使用極少量的內存用于存儲退出狀態和資源使用信息。

            2.問題確定
            某一個進程在結束時由它的父進程負責刪除它。要找到某一個進程的父進程,執行ps -ef命令,輸出中的PPID列給出了一個進程的父進程的進程號。
            (1)如果PPID為1應該如何做?
            如果一個defunct進程的PPID為1,則該defunct進程的父進程為init進程。init進程是系統中所有進程的起源。通常情況下,init進程通過將defunct進程的PPID設為1來收回該進程。
            如果一個defunct進程的父進程號為1,則需要確認該defunct進程是否已結束了若干分鐘。(方法是等幾分鐘后再查看該defunct進程是否還存在。)一個系統中,特別是任務繁忙的系統中,父進程為init的defunct進程存在1~2分鐘是正常的。defunct進程經常由復雜的shell腳本程序產生,這種情況通常是正常的,并不能說明有問題存在。
            當init進程沒有處理完/etc/inittab文件而在等其中的某一項命令結束(通常是一個/etc/rc腳本)時,可能會發生問題。在這時候,init進程會忽略掉其它所有結束的子進程,而只等這個特定的子進程結束。由一個掛起的/etc/inittab文件中的任務引起的問題的征兆是:父進程為init的defunct進程無限制的增長。在AIX4.3及以后的版本中,init進程的功能被增強,用以有效地處理defunct進程。
            如果/etc/inittab文件中含有類似下一行的項,則刪除它:
            install_assist:2:wait:/usr/lib/lpd/pio/etc/pioinit > /dev/null 2>&1
            該進程會引起defunct進程。該項應在初始化安裝結束后被自動刪除。

            (2)如果PPID不為1應該如何做?
            如果父進程號不為1,則相應的父進程應負責收回結束的子進程。未收回子進程的原因之一是shell管道。系統中的許多命令都不會產生子進程,這些進程也無法處理那些結束的子進程。這種情況在一個shell管道中有一個或多個短時進程及一個和多個長時間進程時更為明顯。一個defunct進程會在它的父進程運行期間一直存在。
            任何一個程序在產生子進程時都應負責在子進程結束時收回它們。如果程序在編寫中沒有考慮到處理它們產生的子進程,則該程序存在問題。

            3.如果需要對問題做進一步確認,如何做?
            如果確認一個進程是defunct進程,并且該進程應該被它的父進程收回,則可能需要提供下面的信息給應用軟件供應商用以分析問題產生的可能原因:
            (1)下面命令的輸出:
            # ps -ef
            (2)下面命令的輸出:
            # who -a
            (3)/etc/inittab 文件
            (4)下面命令的輸出:
            SLOT=`expr / 256`
            (echo u $SLOT ; echo trace -k $SLOT) | crash >

            其中, 是defunct進程的父進程號, 是輸出文件的文件名。

            現在僅僅明白了僵尸進程產生原因,除了重啟機器好像沒有什么更好的辦法

            疑問:1.在AIX 5.1上面發現仍然存在defunct進程
            2.在ps -ef中看不到defunct進程,現在只會在who -d命令中看到,找不到defunct進程的父進程號

            這些問題慢慢解決吧

            色婷婷综合久久久久中文一区二区| 免费精品99久久国产综合精品| 97久久精品无码一区二区天美| 一本久久a久久精品vr综合| 久久久久亚洲av毛片大| 久久亚洲国产午夜精品理论片| 久久久国产乱子伦精品作者| 久久婷婷国产麻豆91天堂| avtt天堂网久久精品| 久久久久国色AV免费观看| 亚洲国产精品综合久久网络 | 国产精品99久久久久久宅男小说| 国内精品久久久久影院老司| 一本久久综合亚洲鲁鲁五月天| 伊人久久大香线蕉精品不卡| 亚洲午夜久久久久妓女影院| 无码日韩人妻精品久久蜜桃 | 久久人人爽人人爽人人爽| 精品一区二区久久久久久久网站| 免费精品久久久久久中文字幕| 久久精品国产一区二区三区 | 色综合久久无码中文字幕| 精品国产91久久久久久久| 久久精品亚洲欧美日韩久久| 国产精品久久久久久久人人看| 久久综合给合久久狠狠狠97色69 | 99久久久国产精品免费无卡顿| 久久综合欧美成人| 奇米影视7777久久精品人人爽 | 精品无码久久久久国产| A级毛片无码久久精品免费| 亚洲AV无码久久精品蜜桃| 久久99热狠狠色精品一区| 思思久久好好热精品国产| 久久成人国产精品一区二区| 久久精品国产亚洲AV嫖农村妇女| 日韩亚洲欧美久久久www综合网| 久久精品国产亚洲AV影院| 久久福利片| 久久免费美女视频| 久久婷婷国产综合精品|