您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
workerman的debug和daemon方式区别及分别如何运行?
发布时间:2021-11-27 23:23:02编辑:雪饮阅读()
workerman的debug运行模式也就是我们常见的如:
php -c /usr/local/php734/lib/php/php.ini start.php start
这种方式运行,那么daemon运行模式也就是多了一个参数-d:
php -c /usr/local/php734/lib/php/php.ini start.php start -d
在我个人理解这个-d就是好像是Linux运行一个命令可以以&来进行后台运行的功能一样,而且这里-d的源码我大概看了下好像就是这样的。
debug和daemon方式区别
1、以debug方式启动,代码中echo、var_dump、print等打印函数会直接输出在终端。
2、以daemon方式启动,代码中echo、var_dump、print等打印会默认重定向到/dev/null文件,可以通过设置Worker::$stdoutFile = '/your/path/file';来设置这个文件路径。
3、以debug方式启动,终端关闭后workerman会随之关闭并退出。
4、以daemon方式启动,终端关闭后workerman继续后台正常运行。
这里着重以第二个区别中daemon方式启动后对于var_dump输出的一个实例:
<?php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';
Worker::$stdoutFile = '/root/worker_test_log.txt';
// 创建一个Worker监听2347端口,不使用任何应用层协议
$tcp_worker = new Worker("tcp://0.0.0.0:2347");
// 启动4个进程对外提供服务
$tcp_worker->count = 4;
// 当客户端发来数据时
$tcp_worker->onMessage = function(TcpConnection $connection, $data)
{
$response='hello ' . $data;
var_dump($response);
// 向客户端发送hello $data
$connection->send($response);
};
// 运行worker
Worker::runAll();
运行该服务以daemon方式:
[root@localhost workerman]# php -c /usr/local/php734/lib/php/php.ini start.php start -d
Workerman[start.php] start in DAEMON mode
---------------------------------------- WORKERMAN -----------------------------------------
Workerman version:4.0.22 PHP version:7.3.4
----------------------------------------- WORKERS ------------------------------------------
proto user worker listen processes status
tcp root none tcp://0.0.0.0:2347 4 [OK]
--------------------------------------------------------------------------------------------
Input "php start.php stop" to stop. Start success.
然来一个客户端与其通信:
[root@localhost workerman]# telnet 127.0.0.1 2347
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
hai biabia
hello hai biabia
我们可以看到我们自定义的这类似日志输出的东西就如我们定义的位置中输出了:
[root@localhost workerman]# ls /root
1.html anaconda-ks.cfg cs2.php cs.php dump.rdb dump.rdb.bk harbor-offline-installer-v1.4.0.tgz package.xml redis-5.3.5RC1 redis-5.3.5RC1.tgz worker_test_log.txt
[root@localhost workerman]# cat /root/worker_test_log.txt
string(18) "hello hai biabia
"
关键字词:workerman,debug,daemon
上一篇:workerman查看连接状态