青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

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

#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>

int main(int argc, char** argv)
{
  int num = 6;
  pid_t pid;
 
  if((pid=fork())<0)
    {
     printf("fork error\n");
     return -1;
    }
  else if(pid==0)
   {
        num += 2;
     printf("this is child %d,parent %d, num is %d\n", getpid(), getppid(), num);
     exit(0);
   }
 

 sleep(1);
  printf("this is %d,parent %d, num is %d\n", getpid(), getppid(), num);
 system("ps -o pid,ppid,state,tty,command");
 return 0;
}

輸出

this is child 3647,parent 3646, num is 8
  PID  PPID S TT       COMMAND
 3077  3028 S pts/2    bash
 3646  3077 S pts/2    ./zombie
 3647  3646 Z pts/2    [zombie] <defunct>
 3649  3646 R pts/2    ps -o pid,ppid,state,tty,command
this is 3646,parent 3077, num is 6

看到了,這就是個zombie

 

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


 

#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>

int main(int argc, char** argv)
{
  int num = 6;
  pid_t pid;
 
  if((pid=fork())<0)
    {
     printf("fork error\n");
     return -1;
    }
  else if(pid==0)
   {
    #if 1
    if((pid=fork())<0)
     {
     printf("fork error\n");
     return -1;
     }
    else if(pid>0)
     exit(0);
     
     sleep(1);
    #endif
     num += 2;
     printf("this is child %d,parent %d, num is %d\n", getpid(), getppid(), num);
     exit(0);
   }
  #if 1
  if(waitpid(pid, NULL, 0)!=pid)
    {
      printf("waitpid error\n");
      return -1;
    }
  #endif
  sleep(1);
  printf("this is %d,parent %d, num is %d\n", getpid(), getppid(), num);
  
//while(1)

    
//;

  
 system("ps -o pid,ppid,state,tty,command");
 return 0;
}

輸出

this is child 3629,parent 1, num is 8
  PID  PPID S TT       COMMAND
 3077  3028 S pts/2    bash
 3627  3077 S pts/2    ./zombie
 3630  3627 R pts/2    ps -o pid,ppid,state,tty,command
this is 3627,parent 3077, num is 6

 

waitpid為第一個子進程收死,避免第一個子進程為zombie,而孫進程則由交給init了,

this is child 3629,parent 1, num is 8
于是就沒有state為Z的zombie了!!!!!


《轉自》http://blog.chinaunix.net/u2/76292/showart.php?id=2064840

posted on 2009-10-06 23:42 chatler 閱讀(555) 評論(0)  編輯 收藏 引用 所屬分類: Linux_Coding
<2010年5月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

常用鏈接

留言簿(10)

隨筆分類(307)

隨筆檔案(297)

algorithm

Books_Free_Online

C++

database

Linux

Linux shell

linux socket

misce

  • cloudward
  • 感覺這個博客還是不錯,雖然做的東西和我不大相關,覺得看看還是有好處的

network

OSS

  • Google Android
  • Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
  • os161 file list

overall

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            麻豆成人在线| 在线一区视频| 欧美日韩三级电影在线| 久久在精品线影院精品国产| 亚洲一区三区电影在线观看| 日韩亚洲欧美高清| 日韩午夜三级在线| 日韩小视频在线观看专区| 99视频一区| 亚洲欧美成人| 久久精品国产亚洲a| 久久av一区二区三区漫画| 久久精品国产69国产精品亚洲| 欧美中文字幕视频| 久久综合国产精品台湾中文娱乐网| 久久综合色影院| 欧美福利影院| 欧美亚日韩国产aⅴ精品中极品| 国产精品老牛| 国外成人网址| 午夜在线a亚洲v天堂网2018| 亚洲毛片网站| 一级日韩一区在线观看| 亚洲影院在线观看| 久久一区二区三区超碰国产精品| 久久午夜影视| 欧美激情一区二区三区在线| 亚洲国产精品一区二区三区 | 中文国产成人精品| 亚洲专区国产精品| 久久综合影视| 亚洲一本大道在线| 免费欧美日韩| 国产精品日韩欧美综合 | 亚洲毛片在线观看.| 亚洲欧美精品中文字幕在线| 母乳一区在线观看| 亚洲欧美区自拍先锋| 麻豆freexxxx性91精品| 老鸭窝亚洲一区二区三区| 欧美天天影院| 亚洲欧洲日韩女同| 久久aⅴ国产欧美74aaa| 亚洲精品在线看| 久久伊人免费视频| 国产日韩一区欧美| 亚洲一区二区三区成人在线视频精品| 久久日韩精品| 亚洲无线视频| 欧美日韩免费| 亚洲美女av网站| 久久成人精品无人区| 亚洲高清在线精品| 久久精品国产96久久久香蕉| 亚洲大片一区二区三区| 性欧美暴力猛交69hd| 欧美视频精品在线| 一本色道久久综合狠狠躁篇怎么玩| 玖玖综合伊人| 久久精品中文字幕一区二区三区| 国产欧美精品一区二区三区介绍| 日韩视频在线观看国产| 欧美大片91| 亚洲欧美国产精品专区久久| 欧美色大人视频| 一本色道久久综合亚洲精品婷婷| 亚洲国产欧美一区二区三区同亚洲| 久久激情视频免费观看| 国产欧美日韩在线| 亚洲综合另类| 亚洲一区久久久| 国产精品乱人伦中文| 亚洲欧美日本日韩| 中文欧美日韩| 国产日韩成人精品| 久久精品女人的天堂av| 日韩午夜电影| 欧美亚洲一区二区三区| 亚洲一区二区免费| 国产精品成人在线| 亚洲欧洲精品一区二区三区 | 久久精品夜夜夜夜久久| 一本色道久久88亚洲综合88| 亚洲精品在线视频| 久久网站热最新地址| 久久久99国产精品免费| 国产一区二区成人久久免费影院| 一区二区三区三区在线| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 免费在线欧美视频| 亚洲黄色成人网| 欧美va天堂| 欧美色大人视频| 猛男gaygay欧美视频| 久久中文在线| 夜夜精品视频| 欧美日韩一区二区三区| 亚洲视频每日更新| 久久美女性网| 国产在线播精品第三| 亚洲风情亚aⅴ在线发布| 欧美中文在线视频| 欧美激情一区二区三级高清视频| 日韩亚洲在线| 欧美日韩一区二区视频在线观看| 麻豆成人av| 亚洲欧洲在线看| 欧美色视频在线| 免费在线观看成人av| 99精品欧美一区二区三区综合在线 | 久久成人免费日本黄色| 亚洲乱码日产精品bd| 国产日韩欧美日韩大片| 性欧美激情精品| 男女激情久久| 亚洲一区二区视频| 99在线热播精品免费| 国产小视频国产精品| 欧美婷婷在线| 久久九九国产| 亚洲香蕉视频| 欧美www视频| 久久综合中文| 免费在线播放第一区高清av| 欧美va天堂在线| 久久精品国产亚洲5555| 在线精品观看| 在线观看视频一区二区| 亚洲啪啪91| 亚洲欧洲美洲综合色网| 在线欧美小视频| 国产视频在线观看一区二区| 欧美日韩国产一区二区三区地区| 欧美成人一区二区三区| 欧美日韩国产首页| 亚洲精选久久| 亚洲国产精品视频| 久久精品国产亚洲一区二区| 午夜在线不卡| 免费美女久久99| 欧美韩日亚洲| 欧美福利影院| 亚洲男人第一网站| 欧美大片免费久久精品三p| 欧美激情第六页| 欧美性猛交一区二区三区精品| 欧美激情在线免费观看| 欧美日韩在线看| 亚洲区国产区| 日韩视频免费大全中文字幕| 国产精品99久久久久久久久| 美国三级日本三级久久99| 欧美一区二区女人| 亚洲激情小视频| 日韩一级片网址| 一本色道久久88综合日韩精品| 欧美一区二区三区四区夜夜大片| 欧美gay视频激情| 激情视频一区二区| 国产亚洲精品7777| 亚洲精品国产精品国自产观看浪潮 | 在线免费观看一区二区三区| 亚洲伊人色欲综合网| 亚洲激情国产精品| 欧美一区三区二区在线观看| 欧美片第1页综合| 国产午夜精品福利| 亚洲一区二区三区高清不卡| 亚洲国产精品久久久久秋霞影院| 久久久久网址| 亚洲另类一区二区| 亚洲国产99精品国自产| 老司机免费视频一区二区三区| 好吊妞**欧美| 国产私拍一区| 亚洲精品乱码久久久久久| 免费日韩成人| 国产精品人人做人人爽人人添| 欧美亚洲视频在线观看| 欧美综合激情网| 亚洲人成免费| 99国产一区| 亚洲国产成人精品女人久久久 | 免费短视频成人日韩| 狠狠色丁香婷婷综合影院 | 欧美77777| 亚洲欧美www| 欧美日本一区| 亚洲免费精品| 黑人极品videos精品欧美裸| 最近中文字幕日韩精品| 久久久久久穴| 亚洲一区二区3| 久久精品日韩欧美| 亚洲精品一区二区三区在线观看 | 日韩亚洲综合在线| 亚洲图片欧美午夜| 国内视频一区| 久久成人精品电影| 久久综合九色综合网站|