?
1、捕獲子進程退出(監聽SIGCHLD信號,然后調用 pcntl_wait 函數)
declare(ticks=1);pcntl_signal(SIGCHLD, "sig_handler"); function sig_handler($signo) {switch ($signo) {case SIGCHLD:$status = 0;$child_id = pcntl_wait($status);echo sprintf("child exit id: {$child_id} \n");exit(0);break;default:echo 'uncaugh signal !';}}$pid = pcntl_fork(); if($pid>0) {echo sprintf("fork child id: {$pid} \n");while(1){sleep(1);}}else{echo "child exit \n"; }
?
2、捕獲子進程退出(直接調用 pcntl_wai* 函數)
3、捕獲子進程退出 (io復用監控進程間的管道可讀)
?