Workerman[workerman:im] restart
Workerman[workerman:im] is stopping ...
Workerman[workerman:im] stop success
stream_socket_server(): unable to connect to tcp://0.0.0.0:9999 (Address already in use) in file /www/wwwroot/webim.1plm.com/vendor/workerman/workerman/Worker.php on line 2214
Exception : Address already in use
以前用户数少的时候没出现此问题
可能是你的业务创建了新的进程,比如运行了pcntl_fork exec 等代码,创建的进程没有被回收导致的。
你可以把自己的业务逻辑注释掉,看是否有问题。
线上没法注释业务逻辑,开发环境没问题.... 我是在onWorkerStart另外监听了一个端口,这个端口收到消息后,会请求一些http来完成业务,是不是这些没办法强制关闭
9999端口是在onWorkerStart监听的么?
启动后执行
ps auxf
,截图下workerman部分。重启后报错后执行
ps auxf
,截图下workerman部分。对比两次ps auxf能看出来哪个进程没回收,
看下占用9999端口的进程名是什么
说明还有worker 进程没有正常退出,你查看下进程列表很容易就知道了。
正常使用stop命令关闭,什么情况下会进程会有没正常退出的
启动了多个?