/**
02 * 入口函数03 * 将此文件保存为 ProcessOpera.php04 * 在terminal中运行 /usr/local/php/bin/php ProcessOpera.php &05 * 查看进程 ps aux|grep php06 */07 08 09 ProcessOpera("runCode", array(), 8);10 11 /**12 * run Code13 */14 function runCode($opt = array()) { 15 //需要在守护进程中运行的代码16 }17 18 /**19 * $func为子进程执行具体事物的函数名称20 * $opt为$func的参数 数组形式21 * $pNum 为fork的子进程数量22 */23 function ProcessOpera($func, $opts = array(), $pNum = 1) { 24 while(true) { 25 $pid = pcntl_fork();26 if($pid == -1) { 27 exit("pid fork error");28 } 29 if($pid) { 30 static $execute = 0;31 $execute++;32 if($execute >= $pNum) { 33 pcntl_wait($status);34 $execute--;35 } 36 } else { 37 while(true) { 38 //somecode39 $func($opts);40 sleep(1);41 } 42 exit(0);43 } 44 } 45 }