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

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精品欧美一区| 亚洲欧美在线高清| 国产精品家庭影院| 欧美色播在线播放| 国产精品午夜久久| 韩国美女久久| 99国内精品久久| 欧美日韩另类字幕中文| 欧美日韩午夜视频在线观看| 国产精品久久久久一区| 好吊成人免视频| 亚洲精品资源| 久久超碰97人人做人人爱| 欧美成人嫩草网站| 一区二区三区高清不卡| 久久久久9999亚洲精品| 欧美日韩国产色视频| 国产免费观看久久| 夜夜嗨av一区二区三区四区| 欧美一区在线视频| 亚洲国产日韩欧美| 午夜一区不卡| 欧美日韩国产专区| 国产综合欧美在线看| 一区二区三区**美女毛片| 久久综合色婷婷| 亚洲性感美女99在线| 欧美成人激情视频免费观看| 国产亚洲福利| 亚洲欧美视频| 日韩一级片网址| 美国十次了思思久久精品导航| 国产精品久久97| 一本久道久久综合狠狠爱| 蜜桃久久av一区| 午夜一区二区三区在线观看| 欧美午夜电影网| 日韩一级片网址| 亚洲国产成人不卡| 美女黄网久久| 一区二区三区自拍| 香蕉国产精品偷在线观看不卡| 亚洲人成人一区二区在线观看| 久久精品亚洲一区二区三区浴池| 国产欧美在线看| 欧美亚洲一区二区三区| 亚洲视频电影图片偷拍一区| 欧美日韩国产a| 一区二区三区久久| 亚洲美女一区| 欧美日韩亚洲一区二区三区在线观看| 亚洲国产欧美在线| 欧美国产日韩a欧美在线观看| 久久精品国产成人| 伊人久久婷婷色综合98网| 另类国产ts人妖高潮视频| 久久国产精品黑丝| 亚洲国产成人久久| 亚洲第一综合天堂另类专| 免费观看一区| 亚洲高清免费在线| 欧美成人亚洲成人日韩成人| 亚洲国产人成综合网站| 欧美jizz19性欧美| 老司机精品久久| 最近中文字幕日韩精品| 亚洲一区二区视频在线| 亚洲精品综合久久中文字幕| 欧美jizz19性欧美| 一区二区三区日韩精品视频| 9久re热视频在线精品| 国产精品裸体一区二区三区| 午夜精品99久久免费| 香蕉久久久久久久av网站| 激情婷婷久久| 最近中文字幕mv在线一区二区三区四区| 欧美激情亚洲自拍| 午夜视频在线观看一区二区三区| 亚洲欧美在线高清| 亚洲国产99| 一区二区三区导航| 韩国av一区二区三区四区| 欧美激情一区二区三区蜜桃视频 | 9国产精品视频| 一区二区电影免费观看| 国产自产2019最新不卡| 亚洲高清免费视频| 国产精品美女久久久久久免费 | 亚洲无限av看| 久久精品国产成人| 在线视频中文亚洲| 欧美一区二区视频观看视频| 亚洲精品一区二区三区婷婷月| 亚洲视频在线免费观看| 伊人成人在线视频| 亚洲午夜一二三区视频| 亚洲国产成人av好男人在线观看| 在线视频精品一区| 亚洲欧洲在线免费| 午夜欧美电影在线观看| 一个色综合导航| 久久久亚洲午夜电影| 性亚洲最疯狂xxxx高清| 欧美激情一区二区三级高清视频 | 国外成人在线视频网站| 99综合在线| 91久久国产综合久久| 欧美影片第一页| 午夜精品久久久久久久久久久久久 | 亚洲欧美在线磁力| 一区二区三区高清不卡| 久久久久久亚洲精品不卡4k岛国| 亚洲欧美日韩高清| 欧美激情一区二区三区四区| 狠狠色香婷婷久久亚洲精品| 亚洲一区免费看| 亚洲视频综合| 欧美精品成人在线| 亚洲成在人线av| 亚洲韩国青草视频| 久久久久国产精品一区| 久久久久免费观看| 国产婷婷一区二区| 午夜精品久久久久久久| 亚洲图片欧洲图片日韩av| 欧美激情一区在线观看| 亚洲高清三级视频| 亚洲精品乱码久久久久久| 久久综合久色欧美综合狠狠| 久久午夜电影网| 激情六月综合| 久久色在线观看| 欧美激情视频一区二区三区免费| 亚洲国产精品一区二区www在线 | 亚洲欧洲一级| 亚洲精品免费一二三区| 欧美精品久久天天躁| 亚洲精品偷拍| 亚洲综合首页| 国产日韩欧美综合| 久久九九电影| 亚洲东热激情| 亚洲调教视频在线观看| 国产精品久久久久久妇女6080| 中国成人亚色综合网站| 欧美一区二区精品| 狠狠色综合播放一区二区| 久久亚洲国产精品日日av夜夜| 欧美成人免费小视频| 日韩视频精品| 国产精品激情| 久久精品一区二区三区中文字幕| 欧美大胆成人| 亚洲一区二区免费看| 国产欧美一区二区色老头| 久久九九免费| 亚洲另类一区二区| 欧美诱惑福利视频| 亚洲第一二三四五区| 欧美视频日韩视频在线观看| 香蕉免费一区二区三区在线观看| 女仆av观看一区| 亚洲一二三四久久| 影音先锋亚洲一区| 欧美日韩在线第一页| 欧美在线观看日本一区| 亚洲精品久久久久久下一站| 欧美中文字幕在线播放| 亚洲日本电影| 国产欧美一区二区三区在线老狼| 欧美xx69| 久久国产婷婷国产香蕉| 一区二区三区你懂的| 欧美国产丝袜视频| 欧美亚洲视频| 日韩视频三区| 尤物九九久久国产精品的分类| 欧美视频网站| 免费视频亚洲| 久久国产高清| 亚洲天堂av高清| 亚洲欧洲精品一区二区三区不卡 | 亚洲精品免费在线观看| 国产日韩欧美一区二区三区四区| 欧美激情精品久久久久久蜜臀| 亚洲在线免费观看| 亚洲开发第一视频在线播放| 女仆av观看一区| 久久亚洲精品欧美| 午夜精品视频网站| 亚洲性视频网址| 亚洲人屁股眼子交8| 国内久久精品视频| 国产伦精品一区二区三区照片91| 欧美女同在线视频| 欧美高清一区| 欧美aⅴ99久久黑人专区| 久久亚洲图片| 久热综合在线亚洲精品| 久久久精品欧美丰满|