介绍
本篇文章给大家分享的是有关怎么在php中利用成为集大成实现守护多进程模式,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
具体代码如下所示:
& lt; php ? class 工人{ public 才能;static  count 美元;=,2; public 才能static function  runAll () { ,,,静态:runMaster (); ,,,静态:moniProcess (); ,,}//开才能启主进程 public 才能static function  runMaster () { ,,,//确保进程有最大操作权限 ,,,揭露(0); ,,,pid 美元;=,pcntl_fork (); ,,,如果(pid 美元;祝辞,0){ ,,,,,echo “主进程进程,pid 美元;\ n"; ,,,,,退出,,, ,,,}else 如果(pid 美元;==,0){ ,,,,,如果(1,===,posix_setsid ()) { ,,,,,,,,,throw new 例外(“setsid fail"); ,,,,,} ,,,,,for (i=0;美元,美元小姐:& lt;, self::计数;美元,美元我+ +),{ ,,,,,,,静态:runWorker (); ,,,,,} ,,,,,@cli_set_process_title (“master_process"); 还有,,,}{ ,,,,,throw new 例外(“创建主进程失败“); ,,,} ,,},//开才能启子进程 public 才能static function  runWorker () { ,,,揭露(0); ,,,pid 美元;=,pcntl_fork (); ,,,如果(pid 美元;祝辞,0){ ,,,,,//,echo “创建子进程,pid 美元;\ n"; ,,,}else 如果(pid 美元;==,0){ ,,,,,如果(1,===,posix_setsid ()) { ,,,,,,,throw new 例外(“setsid fail"); ,,,,,} ,,,,,@cli_set_process_title (“worker_process"); ,,,,,,(1){ ,,,,,,,睡眠(1); ,,,,,} 还有,,,}{ ,,,,,throw new 例外(“创建子进程失败“); ,,,} ,,}//才能监控工人进程 public 才能;function  moniProcess () { ,,,,(,pid 美元;=,pcntl_wait(状态)美元){ ,,,,,如果(pid 美元;==,1){ ,,,,,,,休息; ,,,,,其他}{ ,,,,,,,静态:runWorker (); ,,,,,} ,,,} ,,} } 工人:runAll ();
ps 辅助 USER ,,, PID % CPU % MEM , VSZ , RSS TTY ,, STAT START TIME 命令 root ,,,, 1, 0.0, 0.0, 18200, 3076,分/0,,Ss +, 14:05 0:00 bash root ,,,, 6, 0.0, 0.0, 18208, 3252,分/1,,Ss , 14:06 0:00 bash root ,,, 19日,0.0,0.0,18204,3248,分/2,,Ss +, 14:11 0:00 bash root ,,, 64, 0.0, 0.2, 348488, 8320,,,,, Ss , 15:32 0:00 master_process root ,,, 65, 0.0, 0.2, 348488, 8400,,,,, Ss , 15:32 0:00 worker_process root ,,, 66, 0.0, 0.2, 348488, 8400,,,,, Ss , 15:32 0:00 worker_process root ,,, 67, 0.0, 0.0, 36640, 2804,分/1,,R +,, 15:32 , 0:00 ps 辅助
执行命令杀65人,杀死进程65则master_process进程会再自动开启一个子进程
USER ,,, PID % CPU % MEM , VSZ , RSS TTY ,, STAT START TIME 命令 root ,,,, 1, 0.0, 0.0, 18200, 3076,分/0,,Ss +, 14:05 0:00 bash root ,,,, 6, 0.0, 0.0, 18208, 3252,分/1,,Ss , 14:06 0:00 bash root ,,, 19日,0.0,0.0,18204,3248,分/2,,Ss +, 14:11 0:00 bash null null null null怎么在php中利用成为集大成实现守护多进程模式