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

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>
            亚洲女性裸体视频| 久久精品视频播放| 久久综合九色| 免费看的黄色欧美网站| 久久久无码精品亚洲日韩按摩| 性色av一区二区三区红粉影视| 亚洲欧美日韩国产中文| 久久av一区二区三区漫画| 久久久亚洲国产天美传媒修理工| 免费视频最近日韩| 亚洲精品综合精品自拍| 夜久久久久久| 久久精品卡一| 欧美日韩精品一区二区三区四区 | 性做久久久久久免费观看欧美| 新狼窝色av性久久久久久| 久久精品日韩欧美| 亚洲国产精品一区在线观看不卡 | 欧美女同视频| 国产精品国产三级国产aⅴ入口 | 久久精品国产久精国产爱| 亚洲无线观看| 一本色道久久综合狠狠躁篇怎么玩 | 国产精品一二三| 国产夜色精品一区二区av| 亚洲高清av| 日韩网站在线观看| 99热这里只有精品8| 亚洲综合视频1区| 久久久国产精品一区| 最新国产の精品合集bt伙计| 99国产精品久久久久久久| 久久久国产精品亚洲一区 | 欧美成人精品激情在线观看| 夜夜狂射影院欧美极品| 亚洲欧美激情一区| 亚洲调教视频在线观看| 欧美大片免费久久精品三p| 欧美三级乱码| 亚洲乱码国产乱码精品精天堂| 亚洲图色在线| 亚洲国产成人精品久久| 亚洲一区二区三区成人在线视频精品| 久久精品国产96久久久香蕉| 欧美精品偷拍| 国内视频一区| 久久久久久久久久久久久久一区| 亚洲电影成人| 美女主播视频一区| 国产欧美日韩一区二区三区在线| 亚洲乱码国产乱码精品精| 久久久久久欧美| 久久久噜噜噜久久狠狠50岁| 午夜精品一区二区在线观看| 欧美国产日韩精品免费观看| 亚洲成人在线| 久久av红桃一区二区小说| 亚洲女人av| 欧美日韩一区在线| 亚洲欧美国产高清va在线播| 欧美精品www在线观看| 国内精品久久久久久影视8| 久久亚洲一区二区| 欧美亚洲一区二区三区| 国产一区视频在线观看免费| 亚洲性图久久| 宅男精品视频| 欧美色区777第一页| 亚洲女女女同性video| 亚洲欧洲精品一区二区三区不卡 | 亚洲欧洲精品一区二区三区| 亚洲欧美中文字幕| 欧美四级在线观看| 亚洲综合成人婷婷小说| 亚洲精品在线看| 国产精品久久久久久影视| 日韩视频一区二区三区在线播放免费观看 | 久久夜色精品国产| 欧美一区二区观看视频| 激情国产一区| 男人插女人欧美| 欧美成人精品一区二区三区| 亚洲日本电影| 亚洲在线观看| 国产综合香蕉五月婷在线| 欧美高清不卡| 欧美巨乳波霸| 激情懂色av一区av二区av| 亚洲国产高清视频| 欧美电影免费观看| 午夜视频一区在线观看| 亚洲男人av电影| 亚洲精品美女久久7777777| 亚洲欧洲三级| 国产午夜精品全部视频在线播放| 久久久久9999亚洲精品| 亚洲在线中文字幕| 91久久国产综合久久91精品网站| 亚洲电影免费观看高清| 国产伦理精品不卡| 久久综合九九| 国产精品入口麻豆原神| 久久av一区| 欧美三级第一页| 美女国产精品| 国产精品日日做人人爱| 欧美大片在线看| 欧美成人高清视频| 久久狠狠亚洲综合| 麻豆九一精品爱看视频在线观看免费| 亚洲深夜激情| 久久精品午夜| 欧美在线观看视频一区二区| 久久婷婷蜜乳一本欲蜜臀| 小处雏高清一区二区三区| 久久视频国产精品免费视频在线 | 麻豆精品国产91久久久久久| 欧美国产精品久久| 乱人伦精品视频在线观看| 欧美激情一区二区三区不卡| 老鸭窝毛片一区二区三区| 国产精品白丝av嫩草影院| 亚洲欧洲在线观看| 国产综合18久久久久久| 亚洲香蕉网站| 亚洲欧美一区二区激情| 久久综合九色99| 99精品99| 一区二区三区.www| 欧美日韩一区在线播放| 91久久中文字幕| 国产精品久久久久毛片大屁完整版| 久久中文久久字幕| 蜜桃av久久久亚洲精品| 美国十次了思思久久精品导航| 欧美午夜在线视频| 在线视频亚洲| 艳妇臀荡乳欲伦亚洲一区| 欧美激情一区二区三区全黄 | 在线播放一区| 久久精品天堂| 久久精品首页| 激情久久久久久| 欧美一区二区三区另类| 久久成年人视频| 国产精品午夜在线| 亚洲男人影院| 亚洲欧美精品一区| 国产精品久久久久久影视| 在线一区日本视频| 亚洲一二三区视频在线观看| 亚洲精品免费观看| 亚洲国产日韩欧美在线图片| 久久久久久9| 每日更新成人在线视频| 国内精品久久久久久| 免费在线观看一区二区| 欧美国产日韩在线| 99这里只有精品| 欧美日本视频在线| 亚洲欧美激情四射在线日| 性欧美videos另类喷潮| 一区二区三区无毛| 噜噜噜在线观看免费视频日韩| 亚洲日本激情| 亚洲综合首页| 极品尤物一区二区三区| 久久一本综合频道| 99热免费精品| 欧美中文在线字幕| 亚洲日韩中文字幕在线播放| 欧美日韩成人综合| 亚洲专区一区二区三区| 久久久九九九九| 欧美日韩免费观看一区=区三区| 亚洲精品女人| 在线免费观看日韩欧美| 欧美理论电影网| 亚洲一区欧美二区| 欧美国产日韩视频| 亚洲影院色无极综合| 亚洲高清视频一区二区| 欧美精品久久久久久久久久| 欧美在线亚洲一区| 亚洲黄色影院| 蜜臀av一级做a爰片久久| 日韩一级网站| 亚洲国产小视频在线观看| 欧美日韩亚洲综合在线| 久久嫩草精品久久久精品| 亚洲人成毛片在线播放| 久久综合网络一区二区| 一本久久综合| 亚洲日本一区二区三区| 亚洲大片精品永久免费| 麻豆av一区二区三区久久| 国产精品久久久久999| 狠狠狠色丁香婷婷综合激情| 性欧美8khd高清极品| 久久久av网站|