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

Prayer

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

signal(SIGCHLD,SIG_IGN)和signal(SIGCLD,SIG_IGN)

Posted on 2008-08-21 18:30 Prayer 閱讀(13593) 評論(1)  編輯 收藏 引用 所屬分類: LINUX/UNIX/AIX

 

在子進程結束后產生了僵死進程,用了signal(SIGCHLD,SIG_IGN)和signal(SIGCLD,SIG_IGN)都不行,兩個能一起用嗎?  

你產生子進程時fork兩次,這樣由于第一次fork產生的子進程在fork之后就退出,所以第二次fork產生的子進程成為“孤兒“進程,init進程會接管它,成為它的父進程,而init進程肯定會處理了SIGCHLD信號,所以這樣也不會出現僵死進程。  

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



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

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

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

fork   兩次即可解決Top

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

應該在父進程中調用wait或waitpid涵數.Top

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

最好是用waitpid,因可能有多個子進程,而unix的   信號是不排隊的Top

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

可是有的程序也沒有用wait,waitpid卻沒有產生僵死進程,真的不知道為什么?  
  Top

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

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

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

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

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

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

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

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

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

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

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

我已經改為用wait的方式了,解決了。  
  因為是別人的程序,本來不想改動,所以奇怪為什么原來沒有問題,現在卻導致經常要重新啟動,可能是操作系統哪個補丁沒打上。  
  謝謝大家。Top

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

unix   網絡編程。  
  里面將了一個用循環寫的SIG_CLD的處理函數。  
  如果子進程很多,推薦用這一標準做法。Top

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

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

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

一般當一個進程終止后都會發送SIGCHLD信號給它的父進程,并由此變為僵死進程直到父進程接收了其狀態報告其資源才會被系統釋放;  
  處理方法有3種:  
  1. 當子進程終止時父進程接收SIGCHLD信號并調用waitpid()函數接收其狀態報告,最好用sigaction(),signal()不可靠;  
  2. 通過函數sigaction指明標志SA_NOCLDWAIT來指定信號SIGCHLD的動作,這使得內核在調用者的子進程終止時不創建僵死進程。  
  3. 二次fork調用;  
  Top

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

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

Feedback

# re: signal(SIGCHLD,SIG_IGN)和signal(SIGCLD,SIG_IGN)  回復  更多評論   

2013-12-07 01:09 by 客串一回
謝謝,今天用fork寫httpd的時候,發現進程僵死了,不知該怎么辦。
多謝提示,該去看看signal相關的東西
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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久久| 欧美国产欧美综合 | 亚洲欧美日韩爽爽影院| 一本色道88久久加勒比精品| 一区二区三区欧美成人| 亚洲欧美国产日韩中文字幕| 久久精精品视频| 欧美aaa级| 国产精品v欧美精品v日韩精品| 国产精品嫩草影院av蜜臀| 国产婷婷一区二区| 亚洲国内在线| 亚洲一区视频| 美日韩精品免费| 亚洲美女尤物影院| 亚洲国产成人在线视频| 日韩午夜在线电影| 欧美一区二区三区在线观看视频| 久久资源在线| 亚洲精品视频在线观看免费| 欧美一级成年大片在线观看| 欧美xxxx在线观看| 国产精品视频yy9099| 亚洲国产日韩欧美在线99 | 久久久国产精彩视频美女艺术照福利| 久久久久综合| 在线视频免费在线观看一区二区| 欧美影院久久久| 欧美日韩国产美女| 一区二区三区在线观看国产| 在线一区亚洲| 欧美韩日一区二区| 欧美一区二区三区啪啪| 欧美色欧美亚洲高清在线视频| 一区精品久久| 久久国产精品一区二区三区四区 | 亚洲伊人观看| 欧美精品v国产精品v日韩精品| 国产喷白浆一区二区三区| 亚洲老司机av| 欧美成人综合在线| 欧美中文字幕在线| 国产麻豆9l精品三级站| 亚洲一二三四久久| 亚洲黄色大片| 美女脱光内衣内裤视频久久网站| 国产日韩一区| 久久av一区二区三区漫画| 正在播放欧美视频| 欧美日精品一区视频| 99亚洲一区二区| 亚洲人成网站精品片在线观看| 久久免费黄色| 亚洲第一在线综合在线| 久久综合久久综合这里只有精品 | 亚洲日本无吗高清不卡| 老司机免费视频久久| 激情成人av在线| 久久综合色8888| 久久久久久尹人网香蕉| 黄色av一区| 麻豆精品视频在线| 久久理论片午夜琪琪电影网| 在线播放日韩专区| 欧美国产极速在线| 欧美成人午夜视频| 一本色道久久综合狠狠躁的推荐| 亚洲另类一区二区| 在线亚洲欧美| 国产精品久久久久久久久动漫| 亚洲一区亚洲二区| 亚洲午夜精品17c| 国产精品性做久久久久久| 久久精品人人做人人爽| 久久gogo国模啪啪人体图| 精品电影在线观看| 亚洲缚视频在线观看| 欧美日韩国产系列| 久久福利电影| 美女91精品| 亚洲字幕一区二区| 久久国产综合精品| 亚洲精品美女久久久久| 一本久道久久综合婷婷鲸鱼| 国产精品欧美一区喷水| 美日韩精品视频| 欧美日韩精选| 久久久久免费观看| 欧美极品aⅴ影院| 欧美一区国产一区| 欧美xx69| 久久精品亚洲精品| 欧美另类变人与禽xxxxx| 欧美有码视频| 欧美精品一区二区久久婷婷| 欧美有码在线观看视频| 欧美成人激情视频免费观看| 亚洲欧美久久久久一区二区三区| 久久久精彩视频| 亚洲一二三级电影| 美国十次成人| 久久国内精品视频| 欧美日韩一区二区欧美激情| 久久久久一区二区| 国产精品久久久一区二区三区| 男女av一区三区二区色多| 国产精品久久久久9999高清| 亚洲国产高清一区二区三区| 国产视频观看一区| 国产精品99久久久久久久vr| 亚洲三级色网| 狼人社综合社区| 久久久久一区二区三区| 国产精品嫩草99a| 99精品视频一区| 亚洲精品午夜精品| 久久综合图片| 美脚丝袜一区二区三区在线观看 | 一本色道久久99精品综合| 在线观看一区视频| 久久激情视频久久| 欧美在线91| 国产精品综合| 亚洲午夜影视影院在线观看| 艳女tv在线观看国产一区| 免费观看亚洲视频大全| 麻豆国产va免费精品高清在线| 国产日韩欧美成人| 亚洲综合精品一区二区| 亚洲一区二区成人在线观看| 欧美区日韩区| 亚洲天堂成人| 欧美国产日本在线| 亚洲第一精品久久忘忧草社区| 韩国精品在线观看| 欧美一区日韩一区| 久久久久久久久久久久久久一区 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 欧美日韩a区| 日韩午夜激情| 亚洲婷婷国产精品电影人久久| 欧美激情在线播放| 91久久精品一区二区别| 99re热这里只有精品免费视频| 欧美激情麻豆| 亚洲美女91| 亚洲自拍偷拍一区| 国产欧美一区在线| 久久国内精品视频| 欧美**人妖| 日韩视频中文字幕| 欧美午夜a级限制福利片| 一区二区三区久久久| 欧美在线播放高清精品| 精品成人一区二区| 欧美顶级艳妇交换群宴| 艳女tv在线观看国产一区| 亚洲欧美视频在线观看视频| 国产情人节一区| 久久婷婷综合激情| 最新国产成人在线观看| 午夜激情综合网| 激情久久综合| 欧美日韩国产精品一区二区亚洲| 中文一区二区| 欧美gay视频激情| 这里只有精品视频| 国产丝袜一区二区| 欧美精品久久久久久久久久| 亚洲欧美日韩精品久久奇米色影视| 久久午夜激情| 一区二区三区国产| 国产综合色在线| 欧美日韩福利在线观看| 午夜欧美精品| 亚洲欧洲一区二区三区在线观看| 欧美亚洲自偷自偷| 亚洲精品久久久久久久久久久久久 | 久久久噜噜噜久久| 中文成人激情娱乐网| 精品av久久久久电影| 国产精品国内视频| 欧美+亚洲+精品+三区| 亚洲午夜高清视频| 欧美激情视频在线播放| 性色一区二区三区| 中国亚洲黄色| 亚洲高清在线观看| 国产欧美高清| 国产精品a久久久久| 欧美成人精品一区二区三区| 美日韩精品视频| 这里只有精品丝袜| 亚洲电影免费| 久久久另类综合| 性做久久久久久久久| 一区二区三区波多野结衣在线观看| 伊大人香蕉综合8在线视|