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

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久久久久久久久久久久| 久久综合色播五月| 欧美日韩18| 亚洲一二三区在线观看| 一本色道久久综合亚洲二区三区 | 午夜激情综合网| 国产一区二区丝袜高跟鞋图片 | 亚洲图片欧美一区| 亚洲在线中文字幕| 激情伊人五月天久久综合| 欧美成人激情在线| 欧美精品在线视频| 欧美一级午夜免费电影| 久久久久成人精品| 中文国产一区| 久久久久国产一区二区三区四区 | 久久精品亚洲国产奇米99| 久久午夜激情| 亚洲一区二区三区在线视频| 久久国产手机看片| 日韩午夜在线视频| 欧美一区1区三区3区公司| 亚洲一区二区高清视频| 国语自产精品视频在线看| 亚洲国产日韩欧美在线图片| 国产精品成人v| 亚洲第一精品久久忘忧草社区| 欧美体内she精视频| 久久九九免费视频| 欧美午夜不卡| 亚洲风情在线资源站| 国产偷国产偷亚洲高清97cao| 91久久精品国产91性色tv| 国产亚洲成年网址在线观看| 亚洲毛片av| 亚洲激情自拍| 久久精品一区二区国产| 午夜精品999| 欧美日韩激情小视频| 欧美激情bt| 在线日韩欧美| 性欧美8khd高清极品| 在线视频免费在线观看一区二区| 久久一区国产| 久久天堂成人| 国产一区二区日韩精品| 亚洲香蕉在线观看| 亚洲一区影音先锋| 欧美日韩国产综合视频在线观看 | 亚洲国产另类 国产精品国产免费| 狠狠色狠狠色综合日日五| 亚洲一区二区免费视频| 亚洲网址在线| 欧美日韩国产亚洲一区| 亚洲精品国产精品乱码不99按摩| 亚洲激情成人网| 久久天堂成人| 欧美激情一区二区三区成人| 在线观看亚洲视频啊啊啊啊| 久久精品免费电影| 久久先锋资源| 在线成人性视频| 久久人体大胆视频| 免费人成精品欧美精品| 伊人狠狠色丁香综合尤物| 久久久成人精品| 欧美不卡高清| 亚洲另类自拍| 国产精品a久久久久| 亚洲一本视频| 久久精品一区四区| 亚洲高清视频一区二区| 你懂的亚洲视频| 亚洲精品一区二区三区婷婷月 | 亚洲精品国久久99热| 欧美激情亚洲自拍| 中文国产成人精品| 欧美亚洲综合在线| 黄色精品一区| 欧美二区在线观看| 一区二区三区四区国产| 欧美一区二区三区四区在线| 国产午夜精品全部视频在线播放| 久久精品国产亚洲5555| 亚洲国产精品一区二区三区| 亚洲午夜电影| 激情六月婷婷久久| 正在播放欧美一区| 久久久久久久网| 国产真实乱子伦精品视频| 欧美专区福利在线| 亚洲欧洲日韩综合二区| 亚洲欧美在线x视频| 在线看日韩欧美| 欧美视频一区二区| 久久精品一区二区三区不卡牛牛| 亚洲成在人线av| 久久国产免费| 在线午夜精品| 激情久久婷婷| 国产精品视频九色porn| 蜜臀av性久久久久蜜臀aⅴ四虎 | 亚洲精品免费观看| 久久久久99| 亚洲午夜精品一区二区三区他趣| 国产综合色产| 国产精品久久久久久久9999| 久久综合久久综合这里只有精品| 一区二区国产日产| 欧美激情导航| 久久精品国产亚洲高清剧情介绍| 亚洲日韩中文字幕在线播放| 国产欧美日韩亚洲精品| 欧美日韩国产天堂| 欧美成人精品不卡视频在线观看| 亚洲欧美另类久久久精品2019| 亚洲人成在线影院| 免费观看在线综合色| 性做久久久久久| 亚洲视频观看| 99视频日韩| 亚洲日本一区二区三区| 韩国av一区二区三区| 国产精品资源在线观看| 欧美日韩专区| 欧美日韩另类字幕中文| 欧美成年人网| 可以免费看不卡的av网站| 久久国产精品一区二区| 亚洲一区二区三区午夜| 在线综合亚洲欧美在线视频| 亚洲欧洲三级| 亚洲免费成人av| 亚洲欧洲另类国产综合| 亚洲国内精品| 亚洲国产精品尤物yw在线观看 | 一本色道久久综合亚洲精品婷婷 | 亚洲精品国产精品国自产在线| 欧美α欧美αv大片| 美女图片一区二区| 久久综合狠狠| 免费欧美日韩| 亚洲国产99| 亚洲精品一区二区网址| 99pao成人国产永久免费视频| 99精品国产在热久久下载| 亚洲精品在线一区二区| 夜夜爽www精品| 亚洲免费综合| 久久久精品动漫| 美国三级日本三级久久99| 欧美/亚洲一区| 欧美精品免费播放| 国产精品国产三级国产aⅴ浪潮 | 激情丁香综合| 亚洲国内精品在线| 日韩视频一区二区在线观看| 亚洲私人黄色宅男| 欧美在现视频| 免费av成人在线| 91久久久在线| 亚洲综合色丁香婷婷六月图片| 久久成人精品电影| 欧美大片免费观看| 国产精品久久久一区二区三区 | 欧美成人一品| 国产精品久久久久毛片大屁完整版| 国产精品视频免费一区| 伊人久久成人| 亚洲午夜伦理| 裸体一区二区三区| 亚洲免费播放| 久久久精品国产99久久精品芒果| 欧美另类videos死尸| 国产一区二区无遮挡| 亚洲精品社区| 欧美中文在线字幕| 91久久久国产精品| 性欧美暴力猛交69hd| 欧美精品国产一区| 国产一区二区丝袜高跟鞋图片| 99精品99| 免费在线国产精品| 亚洲一区二区少妇| 免费在线欧美视频| 国产一区二区观看| 亚洲午夜激情网页| 欧美激情aⅴ一区二区三区| 亚洲一区激情| 欧美日韩福利视频| **网站欧美大片在线观看| 亚洲欧美另类在线| 最近中文字幕mv在线一区二区三区四区| 亚洲综合日韩中文字幕v在线| 欧美激情精品久久久六区热门| 精品999久久久| 欧美一区二区精品久久911| 亚洲麻豆视频| 欧美国产另类| 亚洲国产精品一区二区第一页|