登录 |

僵尸进程

2013年10月23日 下午 12:40 | 作者:

原则:

一个子进程死了,先变成僵尸,等待父进程收尸

父进程必须是子进程的亲爹,爷爷就不行了

如果亲爹死的早:

  1. 自动过继给init当儿子,由init收尸

如果亲爹还活着:

  1. 声明放弃抚养权,由init收尸
    pcntl_signal(SIGCHLD, SIG_IGN);
    一旦声明放弃,就无法获取子进程退出状态码:
    pcntl_waitpid(返回错误码-1)
    proc_open:proc_get_status/proc_close (返回错误码-1)
    但还有后悔药 pcntl_signal(SIGCHLD, SIG_DFL) 恢复接收信号
  2. 一个负责任的好爹,亲自收尸
    pcntl_waitpid 

    1. 阻塞等待所有子进程
      while( $pid_exited = pcntl_waitpid(-1, $status) ) {
      }
    2. 注册信号处理句柄
      pcntl_signal(SIGCHLD, function($signo){
      $pid_exited = pcntl_waitpid(-1, $status);
      });
  3. 一个不负责任的爹,活着却不管不问
    儿子死了就变成了僵尸,想当僵尸还是很难的:)

 

评论(11条评论)

  1. buy RS Gold…

    i can discover numerous great solutions if i have difficulty!…

  2. u4fifa images…

    You are looking sharp !…

  3. u4fifa twitch…

    The youre very eloquent ….

  4. cheapest nba 2k16 mt pc store…

    I’m all yours!…

  5. nba2k16store…

    I mean it!…

  6. fifa 17 coins…

    Hold it!…

  7. u4fifa…

    I don’t know what you are saying…

  8. UPAlbion.com…

    If he shows up, we stick with him….

  9. nba 2k17 mt

    I was thinking if after work we could grab a cup of coffee

  10. Cheap NBA 2K17 MT for Sale

    Come on, Stop!

  11. Buy Cheap NBA 2K17 MT

    I have no idea what you have said

发表评论

您必须登陆才可以发表评论