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

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
<2009年10月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

常用鏈接

留言簿(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>
            国模私拍一区二区三区| 欧美日韩国产欧美日美国产精品| 欧美专区在线| 午夜在线观看免费一区| 亚洲一级高清| 亚洲欧美日韩国产精品| 亚洲在线网站| 久久激情视频久久| 美女国产一区| 亚洲人成网站精品片在线观看| 每日更新成人在线视频| 欧美电影免费观看高清完整版| 免费在线欧美黄色| 先锋资源久久| aa日韩免费精品视频一| 99一区二区| 亚洲午夜在线视频| 午夜欧美不卡精品aaaaa| 午夜久久美女| 老巨人导航500精品| 最新国产精品拍自在线播放| 日韩亚洲精品视频| 欧美在线视频免费播放| 美国成人直播| 国产精品视频免费在线观看| 激情综合亚洲| 亚洲一区二区精品在线观看| 欧美在线三区| 亚洲日本欧美在线| 欧美一区日韩一区| 欧美日韩国产精品| 国内外成人免费激情在线视频| 亚洲青色在线| 欧美亚洲在线视频| 欧美激情视频一区二区三区免费| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲一区二区三区四区在线观看 | 欧美成人一品| 日韩亚洲视频| 久久久99爱| 国产精品日韩欧美大师| 亚洲精品在线一区二区| 久久国产精品99精品国产| 亚洲欧洲精品一区二区| 午夜在线精品偷拍| 欧美另类久久久品| 亚洲福利精品| 久久av二区| 亚洲资源av| 欧美日韩国产123| 亚洲国产电影| 久久艳片www.17c.com| 亚洲综合国产激情另类一区| 欧美三区美女| 一区二区高清| 亚洲人成在线观看网站高清| 久久综合伊人| 亚洲第一综合天堂另类专| 久久精品免费观看| 西瓜成人精品人成网站| 国产精品色网| 欧美专区中文字幕| 午夜影院日韩| 国语自产精品视频在线看| 久久av一区二区三区漫画| 一区二区三区回区在观看免费视频| 欧美国产激情| 一区二区电影免费观看| 99视频在线观看一区三区| 欧美视频中文字幕| 亚洲激情婷婷| 欧美刺激性大交免费视频| 久久久久在线| 激情文学一区| 美女爽到呻吟久久久久| 久久综合国产精品| 91久久久久久久久久久久久| 欧美激情在线观看| 欧美日韩精品二区| 香蕉久久夜色精品| 欧美一区视频在线| 亚洲高清在线播放| 亚洲美女视频在线观看| 国产精品理论片| 久久精品在线免费观看| 久久综合国产精品台湾中文娱乐网| 亚洲欧洲一区二区在线播放| 亚洲精品中文字幕有码专区| 国产农村妇女毛片精品久久莱园子| 久久人人97超碰精品888| 欧美大成色www永久网站婷| 亚洲少妇中出一区| 欧美一区二区成人| 亚洲精品美女在线| 午夜精品美女自拍福到在线| 在线观看av不卡| 日韩一区二区高清| 红桃视频亚洲| 一区二区av在线| 亚洲国产成人精品女人久久久| av成人天堂| 亚洲韩日在线| 亚洲欧美日本另类| 亚洲精品一区二区三区四区高清| 亚洲午夜女主播在线直播| 激情自拍一区| 亚洲欧美国产日韩中文字幕| 亚洲精品国产精品国自产观看 | 免费观看日韩av| 欧美日韩一区二区三区在线观看免| 欧美综合国产| 欧美三级电影精品| 免费亚洲网站| 国际精品欧美精品| 在线视频欧美精品| 91久久在线播放| 欧美中文字幕第一页| 亚洲午夜一二三区视频| 欧美成年人视频| 久久一二三国产| 国产精品永久免费| 日韩天堂在线视频| 日韩亚洲欧美一区| 麻豆乱码国产一区二区三区| 久久精品人人做人人综合| 欧美亚男人的天堂| 99在线观看免费视频精品观看| 亚洲国产欧美在线人成| 久久精品九九| 久久婷婷麻豆| 国户精品久久久久久久久久久不卡| 亚洲午夜电影网| 亚洲一区日韩在线| 国产精品久久久久久久久久久久久| 久久男人资源视频| 久久色中文字幕| 国产亚洲精品久久久久久| 亚洲天堂av综合网| 亚洲自拍偷拍福利| 欧美日韩在线精品| 99精品国产99久久久久久福利| 亚洲国产欧美久久| 美女诱惑一区| 亚洲大胆人体在线| 91久久精品日日躁夜夜躁国产| 久久久欧美精品sm网站| 玖玖精品视频| 亚洲国产精彩中文乱码av在线播放| 久久激情五月激情| 久久久综合视频| 亚洲第一狼人社区| 欧美aaa级| 亚洲精品欧美专区| 亚洲免费视频观看| 国产亚洲精品v| 久久一区二区视频| 91久久国产精品91久久性色| 日韩午夜在线观看视频| 欧美日韩精品欧美日韩精品| 一区一区视频| 免费在线看一区| 亚洲欧洲一区二区三区久久| 在线一区观看| 国产三区二区一区久久| 久久久久久久波多野高潮日日| 欧美91视频| 在线综合视频| 国产婷婷一区二区| 欧美www在线| 中文欧美字幕免费| 久久久国产午夜精品| 亚洲激情在线观看| 国产精品扒开腿爽爽爽视频| 性欧美在线看片a免费观看| 欧美成人精品一区二区三区| 亚洲一级二级| 在线视频观看日韩| 欧美三级日韩三级国产三级 | 欧美一二三视频| 在线观看视频日韩| 欧美视频亚洲视频| 久久性色av| 中日韩午夜理伦电影免费| 久久亚裔精品欧美| 亚洲视频一区在线观看| 国产综合在线看| 国产精品久久久久久久久免费樱桃 | 99riav国产精品| 国产一区二区久久精品| 欧美黄色影院| 久久婷婷久久| 亚洲欧美视频在线观看视频| 亚洲国产va精品久久久不卡综合| 性欧美8khd高清极品| 亚洲区中文字幕| 韩日精品中文字幕| 国产精品久久亚洲7777| 欧美另类高清视频在线| 免费不卡在线视频| 久久精品欧美|