首页
下载
文档
问答社区
视频
捐赠
源代码
AI 助理
赞助商
CRMEB
Apipost
腾讯云
微擎
禅道
51Talk
商业产品
Swoole AI 智能文档翻译器
Swoole-Compiler PHP 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
sever->start() 和 signal处理的冲突问题
我最近冲github里面下载了最新的版本 swoole,编译以后,再运行原有的程序 --- 上面的程序省略 就是常规的 create server, 注册 open ,message, close 的callback --- {{{ swoole_process::signal(SIGCHLD, function($sig) { //必须为false,非阻塞模式 echo "enter signal.\n"; while($ret = swoole_process::wait(false)) { echo "child PID={$ret['pid']}\n"; } }); echo "enter loop.\n"; $serv->start(); }}} 执行以后出现,错误信息. PHP Fatal error: swoole_http_server::start(): create server failed. Error: (ERROR 9001): The swoole_server must create before client in /usr/share/nginx/LobbyServer/LobbyServer.php on line 209 把 swoole_process::signal 这段语句删掉,就没有问题了。 但是这个写法,在之前版本的swoole下是可以执行的. (pecl 取得的 swoole版本) , 在github的swoole版本下不可以。 有什么办法可以避开这个错误?
发布于7年前 · 0 次浏览 · 来自
提问
u
unravel
我最近冲github里面下载了最新的版本 swoole,编译以后,再运行原有的程序 --- 上面的程序省略 就是常规的 create server, 注册 open ,message, close 的callback --- {{{ swoole_process::signal(SIGCHLD, function($sig) { //必须为false,非阻塞模式 echo "enter signal.\n"; while($ret = swoole_process::wait(false)) { echo "child PID={$ret['pid']}\n"; } }); echo "enter loop.\n"; $serv->start(); }}} 执行以后出现,错误信息. PHP Fatal error: swoole_http_server::start(): create server failed. Error: (ERROR 9001): The swoole_server must create before client in /usr/share/nginx/LobbyServer/LobbyServer.php on line 209 把 swoole_process::signal 这段语句删掉,就没有问题了。 但是这个写法,在之前版本的swoole下是可以执行的. (pecl 取得的 swoole版本) , 在github的swoole版本下不可以。 有什么办法可以避开这个错误?
赞
0
分享
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
评论
2017-05-17
鬼
鬼才
必须在worker进程创建之后才能设置信号。这里在 new swoole_server之前监听了信号,会与swoole_server->start发生冲突。
赞
0
回复
微信公众号
热门内容
作者其它话题
- http请求+异步Http/WebSocket客户端+WebSocket 能配合工作吗?
暂无回复的问答
- CodeGalaxy K3s 轻量集群节点之间如何实现负载均衡
- 关于openssl CURL WARNING swSSL_connect: SSL_connect(fd=69) failed. Error: error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small[1|394]
- 多个模型如何进行事务异常回退?
- websocket开启wss报错
- 协程tcp服务器如何使用多进程?recv()方法接收信息,打印出来的pid一直是同一个。没用使用到多进程啊。