php/swoole进程理解

本文主要了解swoole进程,如何创建子进程,父子进程的关系如何查看,注意需要先安装swoole扩展,需在Linux环境

1.pro.php文件中创建一个子进程,注意里面的参数,查看swoole手册,exec()方法参数注意路径不要写错

<?php

$process = new  Swoole\Process(function (Swoole\Process $pro){
//执行一个外部程序  类似 php websocket.php
    $pro->exec('/www/server/php/80/bin/php', array(__DIR__.'/websocket.php'));
},false);
$pid = $process->start();
echo $pid.PHP_EOL;
Swoole\Process :: wait();

2.websocket.php文件创建WebSocket服务监听端口

<?php
//创建WebSocket Server对象,监听0.0.0.0:9501端口。
$ws = new Swoole\WebSocket\Server('0.0.0.0', 9501);

$ws->set([
    'enable_static_handler'=>true,
    'document_root'=>"/www/wwwroot/swoole/demo-4",
    'worker_num'    => 4,     // 进程数
]);

//监听WebSocket连接打开事件。
$ws->on('Open', function ($ws, $request) {
    $ws->push($request->fd, "hello, welcome\n");
});

//监听WebSocket消息事件。
$ws->on('Message', function ($ws, $frame) {
    echo "Message: {$frame->data}\n";
    $ws->push($frame->fd, "server: {$frame->data}");
});

//监听WebSocket连接关闭事件。
$ws->on('Close', function ($ws, $fd) {
    echo "client-{$fd} is closed\n";
});
echo "服务启动...\n";
$ws->start();

3.Linx终端运行pro.php文件(注:切换到自已的路径),命令:php pro.php

 4.上面的子进程ID是指websocket.php运行的进程,监听端口9501

5.查看子进程的父进程,命令:ps aux | grep pro.php

 6.查看父子进程的关系,命令: pstree -p 85512,其中85513下面的子进程是worker_num属性设置的,我设置为4就是4个进程

7.查看websocket文件下面的进程关系,命令: ps aft |grep websocket   

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值