http_server.php文件内容
use Swoole\Http\Server;
$http = new Server("0.0.0.0", 8501);
$http->set([
"enable_static_handler"=>true,
"document_root"=>"/www/swoole-demo/data",
"worker_num"=>4,
"reactor_num"=>4
]);
$http->on('request', function ($request, $response) {
// $response->end("<h1>Hello Swoole. #".rand(1000, 9999)."</h1>");
//print_r($request->get);
$response->header('Accept-language','zh');
$response->cookie('username','quan',time()+1800);
$response->end(json_encode($request->get));
});
$http->start();
~
~
process.php文件内容
$process= new swoole_process(function(swoole_process $pro){
$pro->exec('/server/php/bin/php',['/www/swoole-demo/server/http_server.php']);
//echo 12132;
},false);
$pid=$process->start();
echo $pid.PHP_EOL;
swoole_process::wait(); //当该子进程关闭时候,回收子进程,不加回变成僵尸进程的存在
我们执行process.php文件,可以看到子进程的pid的输出,8133
[root@localhost process]# php process.php
8133
我需要查看他父进程的pid,然后用于查看该进程的完整关系图
ps aux|grep process.php
我们可以看到 process.php的进程pid是8132,我们现在就可以知道8133的父进程是8132
现在我们已经知道父进程id是8132,我么通过pstree命令查看完整的关系,如果系统没有pstree需要安装,点击跳转教程
pstree -p 8132
可用ps aft |grep http_server来配合来查看更加明细
process wait使用场景
以下是个人理解,如果有什么错误,请各位大神指出
- 用在主进程保持运行,但子进程已经执行完毕的时候,子进程就需要执行回收的操作
- 如果主进程跑完就结束了的,不需要执行回收