php实现 master-worker 守护多进程模式的实例代码
具体代码如下所示:
0){
echo"主进程进程$pid\n";
exit;
}elseif($pid==0){
if(-1===posix_setsid()){
thrownewException("setsidfail");
}
for($i=0;$i0){
//echo"创建子进程$pid\n";
}elseif($pid==0){
if(-1===posix_setsid()){
thrownewException("setsidfail");
}
@cli_set_process_title("worker_process");
while(1){
sleep(1);
}
}else{
thrownewException("创建子进程失败");
}
}
//监控worker进程
publicfunctionmoniProcess(){
while($pid=pcntl_wait($status)){
if($pid==-1){
break;
}else{
static::runWorker();
}
}
}
}
Worker::runAll();
ps-aux USERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMAND root10.00.0182003076pts/0Ss+14:050:00bash root60.00.0182083252pts/1Ss14:060:00bash root190.00.0182043248pts/2Ss+14:110:00bash root640.00.23484888320?Ss15:320:00master_process root650.00.23484888400?Ss15:320:00worker_process root660.00.23484888400?Ss15:320:00worker_process root670.00.0366402804pts/1R+15:320:00ps-aux
执行命令kill65,杀死进程65则master_process进程会再自动开启一个子进程
USERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMAND root10.00.0182003076pts/0Ss+14:050:00bash root60.00.0182083252pts/1Ss14:060:00bash root190.00.0182043248pts/2Ss+14:110:00bash root640.00.23484888320?Ss15:320:00master_process root660.00.23484888400?Ss15:320:00worker_process root680.00.13484885796?Ss15:340:00worker_process root690.00.0366402728pts/1R+15:340:00ps-aux
总结
以上所述是小编给大家介绍的php实现master-worker守护多进程模式的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!