sum = 2 o'clock why doesn't the parent process hang up?
$sum = 0;
while(true){ $sum++; $pid= pcntl_fork(); switch($pid){ case "-1": echo"couldn't fork"; break; case "0":{ var_dump(getmypid()); var_dump(pcntl_wifexited($status), pcntl_wifstopped($status), pcntl_wifsignaled($status), pcntl_wexitstatus($status), pcntl_wtermsig($status)); echo 'ppppppppp';
exit(0); } default: { if($sum == 2){ // $subPid = pcntl_waitpid(-1, $status, SI_ASYNCIO); $subPid = pcntl_wait($status); echo '挂起'."\n"; } var_dump('主'.getmypid()); var_dump($subPid); echo "I'm child" . getmypid() . "\n"; echo 'ccp'; //就会执行子进程 sleep(30); echo "\n\n\n"; } // exit(0); } var_dump(getmypid()); echo 'iiiiiii'; if($sum == 2) break; } 这个是答案 string(8) "主26003"
Null
I ' m child26003
Ccpint (26004)
BOOL (TRUE)
BOOL (FALSE)
BOOL (FALSE)
Int (0)
Int (0)
Ppppppppp
Int (26003)
IIIIIII hangs
String (8) "Master 26003"
Int (26004)
I ' m child26003
Ccpint (26005)
BOOL (TRUE)
BOOL (FALSE)
BOOL (FALSE)
Int (0)
Int (0)
Ppppppppp
Int (26003)
Iiiiiii
Reply content:
sum = 2 o'clock why doesn't the parent process hang up?
$sum = 0;
while(true){ $sum++; $pid= pcntl_fork(); switch($pid){ case "-1": echo"couldn't fork"; break; case "0":{ var_dump(getmypid()); var_dump(pcntl_wifexited($status), pcntl_wifstopped($status), pcntl_wifsignaled($status), pcntl_wexitstatus($status), pcntl_wtermsig($status)); echo 'ppppppppp';
exit(0); } default: { if($sum == 2){ // $subPid = pcntl_waitpid(-1, $status, SI_ASYNCIO); $subPid = pcntl_wait($status); echo '挂起'."\n"; } var_dump('主'.getmypid()); var_dump($subPid); echo "I'm child" . getmypid() . "\n"; echo 'ccp'; //就会执行子进程 sleep(30); echo "\n\n\n"; } // exit(0); } var_dump(getmypid()); echo 'iiiiiii'; if($sum == 2) break; } 这个是答案 string(8) "主26003"
Null
I ' m child26003
Ccpint (26004)
BOOL (TRUE)
BOOL (FALSE)
BOOL (FALSE)
Int (0)
Int (0)
Ppppppppp
Int (26003)
IIIIIII hangs
String (8) "Master 26003"
Int (26004)
I ' m child26003
Ccpint (26005)
BOOL (TRUE)
BOOL (FALSE)
BOOL (FALSE)
Int (0)
Int (0)
Ppppppppp
Int (26003)
Iiiiiii