swoole学习process记录

84 篇文章 3 订阅
4 篇文章 0 订阅

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使用场景

以下是个人理解,如果有什么错误,请各位大神指出

  •  用在主进程保持运行,但子进程已经执行完毕的时候,子进程就需要执行回收的操作
  • 如果主进程跑完就结束了的,不需要执行回收
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值