pcntl_fork
<?php
// 进程信号可以不发送,目前来看,子进程执行完毕,回自动关闭主进程
class TestController
{
public function start()
{
echo("top pid:".posix_getpid()); // 获取进程id
$pid = pcntl_fork(); // fork一个新的进程
// echo("child pid $pid");
// // 接收子进程信号
// pcntl_signal(SIGQUIT,function($signo){
// echo("child send signo[$signo]");
// });
// ??х??m?
if ($pid == -1) {
die('unsupport fork');
} else if ($pid) {
// ???
echo("child-master $pid");// 主进程
} else {
$pid = getmypid(); // 子进程
// ???????????
posix_setuid(1001);
posix_setgid(1001);
// posix_kill($pid,SIGQUIT); //发送进程退出信号
// pcntl_signal_dispatch();
}
}
public function getNum()
{
return pow(10,4);
}
}
$new = new TestController();
$new->start();
|