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

Prayer

在一般中尋求卓越
posts - 1256, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

 

在子進(jìn)程結(jié)束后產(chǎn)生了僵死進(jìn)程,用了signal(SIGCHLD,SIG_IGN)和signal(SIGCLD,SIG_IGN)都不行,兩個(gè)能一起用嗎?  

你產(chǎn)生子進(jìn)程時(shí)fork兩次,這樣由于第一次fork產(chǎn)生的子進(jìn)程在fork之后就退出,所以第二次fork產(chǎn)生的子進(jìn)程成為“孤兒“進(jìn)程,init進(jìn)程會(huì)接管它,成為它的父進(jìn)程,而init進(jìn)程肯定會(huì)處理了SIGCHLD信號(hào),所以這樣也不會(huì)出現(xiàn)僵死進(jìn)程。  

在fork前加上信號(hào)處理函數(shù):  
  signal(SIG_CHLD,   Proc_CHLD);  
  void   Proc_CHLD(int   SIGNO)  
  {  
    int   pid   =   -1;  
    int   stat;  
    while(pid=waitpid(0,   &stat,   WHNONG);  
  }  



1 樓95533(鼠標(biāo)墊)回復(fù)于 2002-11-11 09:40:38 得分 0

可以一起用,這兩句的意思是屏蔽SIGCHLD和SIGCLD信號(hào)。Top

2 樓ari(薛定鍔)回復(fù)于 2002-11-11 10:15:36 得分 0

fork   兩次即可解決Top

3 樓gongdath(gongdath)回復(fù)于 2002-11-11 12:39:28 得分 0

應(yīng)該在父進(jìn)程中調(diào)用wait或waitpid涵數(shù).Top

4 樓1010101010(Number)回復(fù)于 2002-11-12 09:31:37 得分 0

最好是用waitpid,因可能有多個(gè)子進(jìn)程,而unix的   信號(hào)是不排隊(duì)的Top

5 樓wang11912(天天練習(xí))回復(fù)于 2002-11-26 12:01:20 得分 0

可是有的程序也沒有用wait,waitpid卻沒有產(chǎn)生僵死進(jìn)程,真的不知道為什么?  
  Top

6 樓yanyanyan(西門吹鹽)回復(fù)于 2002-11-26 14:30:13 得分 10

只有長(zhǎng)期運(yùn)行而且要產(chǎn)生子進(jìn)程的程序才需要用wait或waitpid。  
  僵死進(jìn)程產(chǎn)生的原因:  
                子進(jìn)程退出后(不管是否是正常退出),它在內(nèi)存中會(huì)遺留部分信息成為一個(gè)僵死進(jìn)程,同時(shí)內(nèi)核會(huì)向其父進(jìn)程發(fā)送SIGCHLD(或SIGCLD)信號(hào)。此時(shí)要分幾種情況:  
            1、父進(jìn)程處理SIGCHLD信號(hào),調(diào)用wait,僵死進(jìn)程消失。這樣我們就看不到僵尸進(jìn)程。  
            2、父進(jìn)程忽略SIGCHLD信號(hào),隨著子進(jìn)程不斷產(chǎn)生、結(jié)束,僵死進(jìn)程的數(shù)目不斷增加,導(dǎo)致影響系統(tǒng)速度及其他一些問(wèn)題。  
          不需長(zhǎng)期運(yùn)行的程序,即使產(chǎn)生子進(jìn)程也不會(huì)導(dǎo)致大量僵死進(jìn)程存在。因?yàn)椋高M(jìn)程退出時(shí),其產(chǎn)生的子進(jìn)城成為“孤兒“進(jìn)程,由init(1號(hào)進(jìn)程)進(jìn)程接管,init進(jìn)程在子進(jìn)程退出時(shí)會(huì)處理SIGCHLD信號(hào),給子進(jìn)程“收尸“。  
    推薦摟主看本書--《Advanced   Programming   in   the   UNIX   Environment》(Richard   Stevents著)。  
   
  Top

7 樓wang11912(天天練習(xí))回復(fù)于 2002-11-26 17:25:20 得分 0

有的長(zhǎng)期運(yùn)行的程序只用了  
  signal(SIGCHLD,SIG_IGN);  
  都不會(huì)產(chǎn)生僵死進(jìn)程,為什么加了  
  signal(SIGCLD,SIG_IGN);  
  都不管用,都在AIX下運(yùn)行。  
  按照Advanced   Programming   in   the   UNIX   Environment中的說(shuō)法,如果用了  
  signal(SIGCHLD,SIG_IGN)就可避免僵死進(jìn)程了  
  Top

8 樓wwwunix(木易)回復(fù)于 2002-11-26 17:46:40 得分 5

解決辦法:  
  在父進(jìn)程中用wait()或waitpid()來(lái)接收終止的子進(jìn)程。Top

9 樓yanyanyan(西門吹鹽)回復(fù)于 2002-11-27 10:50:16 得分 0

-----------------------------------------------------------------  
  按照Advanced   Programming   in   the   UNIX   Environment中的說(shuō)法,如果用了  
  signal(SIGCHLD,SIG_IGN)就可避免僵死進(jìn)程了??????????????  
  -----------------------------------------------------------------  
  誰(shuí)說(shuō)的?  
  signal(SIGCHLD,SIG_IGN)是什么意思?--忽略SIGCHLD信號(hào)?。。。? 
  在長(zhǎng)期運(yùn)行的程序忽略SIGCHLD信號(hào)只會(huì)產(chǎn)生很多僵死進(jìn)程直到父進(jìn)程結(jié)束。  
   
  只有在父進(jìn)程中捕獲SIGCHLD信號(hào),并在SIGCHLD信號(hào)處理函數(shù)中調(diào)用wait才能避免僵死進(jìn)程的出現(xiàn)。  
  當(dāng)然ari(男人阿日)說(shuō)的辦法也行,就是在你產(chǎn)生子進(jìn)程時(shí)fork兩次,這樣由于第一次fork產(chǎn)生的子進(jìn)程在fork之后就退出,所以第二次fork產(chǎn)生的子進(jìn)程成為“孤兒“進(jìn)程,init進(jìn)程會(huì)接管它,成為它的父進(jìn)程,而init進(jìn)程肯定會(huì)處理了SIGCHLD信號(hào),所以這樣也不會(huì)出現(xiàn)僵死進(jìn)程。  
  摟主的理解有點(diǎn)偏差,好好看看大家的貼子巴。《Advanced   Programming   in   the   UNIX   Environment》上也說(shuō)的很清楚。  
   
   
  Top

10 樓flyingcrean(flying鶴)回復(fù)于 2002-11-27 13:51:27 得分 0

在fork前加上信號(hào)處理函數(shù):  
  signal(SIG_CHLD,   Proc_CHLD);  
  void   Proc_CHLD(int   SIGNO)  
  {  
    int   pid   =   -1;  
    int   stat;  
    while(pid=waitpid(0,   &stat,   WHNONG);  
  }  
  Top

11 樓wang11912(天天練習(xí))回復(fù)于 2002-11-27 15:20:10 得分 0

我已經(jīng)改為用wait的方式了,解決了。  
  因?yàn)槭莿e人的程序,本來(lái)不想改動(dòng),所以奇怪為什么原來(lái)沒有問(wèn)題,現(xiàn)在卻導(dǎo)致經(jīng)常要重新啟動(dòng),可能是操作系統(tǒng)哪個(gè)補(bǔ)丁沒打上。  
  謝謝大家。Top

12 樓bnwxf(有一種感覺叫從容)回復(fù)于 2002-11-28 20:46:29 得分 0

unix   網(wǎng)絡(luò)編程。  
  里面將了一個(gè)用循環(huán)寫的SIG_CLD的處理函數(shù)。  
  如果子進(jìn)程很多,推薦用這一標(biāo)準(zhǔn)做法。Top

13 樓whoke(hy)回復(fù)于 2002-12-07 14:50:17 得分 5

to     yanyanyan(西門吹鹽)   (   )   信譽(yù):100     2002-11-27   10:50:00     得分:0    
   
  APUE上是這么說(shuō)的,不過(guò)是指明了版本的.SVR4不會(huì)產(chǎn)生僵尸,而4.3+BSD必須wait     waitpid   才能避免產(chǎn)生僵尸進(jìn)程。  
  兩次fork要保證父進(jìn)程在子進(jìn)程退出前exit.Top

14 樓cwhh(hh)回復(fù)于 2002-12-28 17:56:59 得分 0

一般當(dāng)一個(gè)進(jìn)程終止后都會(huì)發(fā)送SIGCHLD信號(hào)給它的父進(jìn)程,并由此變?yōu)榻┧肋M(jìn)程直到父進(jìn)程接收了其狀態(tài)報(bào)告其資源才會(huì)被系統(tǒng)釋放;  
  處理方法有3種:  
  1. 當(dāng)子進(jìn)程終止時(shí)父進(jìn)程接收SIGCHLD信號(hào)并調(diào)用waitpid()函數(shù)接收其狀態(tài)報(bào)告,最好用sigaction(),signal()不可靠;  
  2. 通過(guò)函數(shù)sigaction指明標(biāo)志SA_NOCLDWAIT來(lái)指定信號(hào)SIGCHLD的動(dòng)作,這使得內(nèi)核在調(diào)用者的子進(jìn)程終止時(shí)不創(chuàng)建僵死進(jìn)程。  
  3. 二次fork調(diào)用;  
  Top

15 樓yanyanyan(西門吹鹽)回復(fù)于 2002-12-30 10:57:06 得分 0

謝謝   whoke(hy)   提醒,抱歉,我可能講的不是很清楚

Feedback

# re: signal(SIGCHLD,SIG_IGN)和signal(SIGCLD,SIG_IGN)  回復(fù)  更多評(píng)論   

2013-12-07 01:09 by 客串一回
謝謝,今天用fork寫httpd的時(shí)候,發(fā)現(xiàn)進(jìn)程僵死了,不知該怎么辦。
多謝提示,該去看看signal相關(guān)的東西
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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| 老司机免费视频一区二区| 美女91精品| 欧美视频在线观看免费网址| 国产精品手机视频| 亚洲第一在线综合在线| 亚洲色图在线视频| 欧美一区影院| 亚洲电影在线| 亚洲电影一级黄| 性做久久久久久久久| 欧美大片免费| 国产午夜精品久久久久久久| 最新国产成人在线观看| 欧美亚洲日本网站| 亚洲黄色尤物视频| 亚洲欧美色婷婷| 欧美精品一区在线发布| 国产女人精品视频| 日韩视频精品在线| 老巨人导航500精品| 夜夜爽av福利精品导航 | 国产精品入口麻豆原神| 亚洲国产91| 性18欧美另类| 亚洲理伦电影| 欧美不卡一区| 精品99一区二区| 欧美精品久久天天躁| 亚洲一区3d动漫同人无遮挡| 欧美xx视频| 在线精品亚洲一区二区| 亚洲欧美网站| 一个色综合导航| 欧美精品手机在线| 亚洲国产欧美一区二区三区丁香婷| 亚洲欧美中文日韩v在线观看| 亚洲国产欧美精品| 久久只有精品| **欧美日韩vr在线| 老司机久久99久久精品播放免费| 亚洲尤物精选| 国产精品视频1区| 亚洲欧美精品suv| 99ri日韩精品视频| 欧美日韩精品免费观看| 亚洲另类春色国产| 亚洲国产一区二区a毛片| 欧美成人综合网站| 亚洲免费成人av| 亚洲日韩成人| 欧美日韩一区二| 亚洲一二三区视频在线观看| 99成人免费视频| 国产精品美女一区二区在线观看| 一区二区三区久久网| 99国产一区| 国产老女人精品毛片久久| 欧美一区不卡| 午夜伦理片一区| 国产一区二区三区久久久| 久久免费99精品久久久久久| 久久精品1区| 亚洲国产精品专区久久| 亚洲国产经典视频| 欧美性猛交一区二区三区精品| 亚洲综合成人在线| 香蕉久久夜色精品国产| 一区二区在线看| 亚洲精品一级| 国产亚洲精品v| 欧美黄色影院| 欧美午夜精品理论片a级大开眼界| 午夜亚洲一区| 久久人人爽人人爽爽久久| 亚洲精品女av网站| 亚洲视频日本| 在线精品一区二区| 亚洲毛片视频| 国产一区二区三区直播精品电影| 欧美国产另类| 国产精品福利影院| 欧美国产综合| 国产乱人伦精品一区二区| 欧美va亚洲va日韩∨a综合色| 欧美精品免费视频| 久久久久久久999| 欧美男人的天堂| 麻豆精品视频在线| 国产精品久久久久秋霞鲁丝| 久久综合影视| 午夜精品视频| 久久女同精品一区二区| 亚洲视频日本| 美女视频一区免费观看| 亚洲欧美国产不卡| 嫩草影视亚洲| 久久久国产视频91| 欧美国产亚洲另类动漫| 久久久欧美精品sm网站| 欧美三区不卡| 免费成人小视频| 国产免费成人在线视频| 亚洲日本免费| 在线日韩精品视频| 性欧美1819性猛交| 亚洲专区在线视频| 欧美精品成人一区二区在线观看| 久久国产综合精品| 国产精品久久久久久久久久ktv| 欧美激情1区| 一区二区在线看| 久久精品国产v日韩v亚洲| 香蕉久久国产| 国产精品二区三区四区| 一区二区三区|亚洲午夜| 亚洲美女av黄| 欧美aⅴ一区二区三区视频| 久久在线免费观看视频| 国产一区二区三区高清在线观看| 亚洲欧美日韩精品久久亚洲区| 亚洲午夜精品久久久久久浪潮| 欧美激情久久久| 亚洲激情在线观看| 亚洲人午夜精品| 欧美国产乱视频| 亚洲国产综合在线看不卡| 亚洲三级色网| 欧美精品精品一区| 亚洲精品色图| 亚洲在线播放电影| 国产精品亚洲综合天堂夜夜| 亚洲综合色自拍一区| 亚洲欧美综合国产精品一区| 国产免费观看久久黄| 欧美一区视频| 免费观看成人网| 亚洲毛片视频| 欧美午夜精品久久久| 午夜精品理论片| 久久一区中文字幕| 亚洲国产精品一区二区尤物区| 美玉足脚交一区二区三区图片| 欧美国产成人精品| 亚洲色图在线视频| 国产视频欧美视频| 久久综合一区二区三区| 99re视频这里只有精品| 欧美一区二区三区久久精品茉莉花| 国产老女人精品毛片久久| 久久精品二区亚洲w码| 亚洲第一在线综合在线| 亚洲欧美视频在线观看视频| 狠狠色综合网站久久久久久久| 久久蜜臀精品av| 99re66热这里只有精品4| 久久国产精品亚洲77777| 亚洲激情在线播放| 国产精品免费观看视频| 久久久久一区二区三区| 亚洲巨乳在线| 亚洲女人天堂av| 欧美成人综合在线| 亚洲尤物在线| 亚洲欧洲久久| 国产精品一区二区三区免费观看| 久久精品国产成人| 亚洲免费观看视频| 狂野欧美激情性xxxx欧美| 中文精品视频| 亚洲国产日韩一级| 国产裸体写真av一区二区| 久久综合国产精品台湾中文娱乐网| 99精品99| 亚洲国产裸拍裸体视频在线观看乱了中文 | 欧美激情二区三区| 午夜视频一区二区| 亚洲伦伦在线| 亚洲成人在线视频播放| 国产精品亚洲一区| 欧美日韩一区二区三区在线观看免| 久久激情综合网| 亚洲欧美国产毛片在线| 亚洲人精品午夜| 一区二区黄色| 国产精品视频第一区| 乱人伦精品视频在线观看| 亚洲综合成人婷婷小说| 亚洲精品乱码| 亚洲第一精品夜夜躁人人爽| 欧美一级在线视频|