首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
在kill掉子进程时,主进程注册的SIGCHLD信号的回调函数出现
{{{ PHP Warning: Invalid callback , no array or string given in Unknown on line 0 Warning: Invalid callback , no array or string given in Unknown on line 0 PHP Warning: swoole_event_wait(): user_signal handler error in Unknown on line 0 Warning: swoole_event_wait(): user_signal handler error in Unknown on line 0 }}} {{{ 代码 swoole_process::signal(SIGCHLD, function ($signo) { //kill掉所有worker进程 必须为false,非阻塞模式 static $worker_count = 0; while($ret = swoole_process::wait(false)) { $worker_count++; \Log::info("PID={$ret['pid']}worker进程退出!", [], 'queue.bear'); if ($worker_count >= $this -> workerNum){ //删除pid文件 unlink($this -> logDir."/work_ids"); unlink($this -> logDir."/pid"); \Log::info("主进程退出!", [], 'queue.bear'); swoole_process::kill($this -> getPid(), SIGKILL); } } }); }}}
发布于9年前 · 1 次浏览 · 来自
提问
Y
Y(⊙ω⊙)Y
{{{ PHP Warning: Invalid callback , no array or string given in Unknown on line 0 Warning: Invalid callback , no array or string given in Unknown on line 0 PHP Warning: swoole_event_wait(): user_signal handler error in Unknown on line 0 Warning: swoole_event_wait(): user_signal handler error in Unknown on line 0 }}} {{{ 代码 swoole_process::signal(SIGCHLD, function ($signo) { //kill掉所有worker进程 必须为false,非阻塞模式 static $worker_count = 0; while($ret = swoole_process::wait(false)) { $worker_count++; \Log::info("PID={$ret['pid']}worker进程退出!", [], 'queue.bear'); if ($worker_count >= $this -> workerNum){ //删除pid文件 unlink($this -> logDir."/work_ids"); unlink($this -> logDir."/pid"); \Log::info("主进程退出!", [], 'queue.bear'); swoole_process::kill($this -> getPid(), SIGKILL); } } }); }}}
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2017-05-24
l
lidaye
真奇怪,因为上周是正常的。我升了php7。然后早上跑脚本就出现这问题。下午我现在5.6.13环境测试,swoole版本是1.7.17 是 正常的,之后我切回php7.0.2,swoole 1.7.22后 又正常了。。。。
赞
0
回复
2017-05-25
幸
幸运符
PHP7环境下`swoole_process::signal`确实有BUG,在最新的`1.8.0`版本已修复。
赞
0
回复