Workerman报错Address already in use如何处理

胖强小哥_2800

胖强小哥_2800

2026-06-29

965人浏览

原创

端口被占用导致workerman启动失败,需依次执行四步:1.用lsof或netstat查占用进程;2.用pgrep或killall清理残留子进程;3.同步更新gatewayworker的register地址;4.升级workerman或指定pidfile路径避免假重启。

workerman报错address already in use如何处理

Workerman启动时提示“Address already in use”,说明你要监听的端口(比如8282、7272或1236)正被另一个进程独占,系统拒绝重复绑定——这不是代码写错了,而是端口资源冲突问题,必须先清空占用者才能继续。

第一步:确认哪个进程在抢你的端口

Linux/macOS下直接运行:lsof -i :8282(把8282换成你报错里写的实际端口号)。这命令会立刻列出进程名、PID和用户,不用猜、不绕路。

如果提示 command not found,说明系统没装lsof:Alpine镜像用apk add lsof,Ubuntu/Debian用apt install lsof。

【注意】别只查0.0.0.0:8282,IPv6地址:::8282也可能在偷偷占着端口,lsof -i :8282能同时覆盖两者。

Windows用户请用:netstat -ano | findstr :8282,再用tasklist | findstr 12345(12345替换成上一步看到的PID)查进程名。

第二步:干掉残留的Workerman子进程

Workerman是多进程模型,主进程fork出多个worker。一旦上次异常退出(比如直接关终端、kill -9主进程、服务器断电),子进程可能还在后台跑着,继续霸占端口。

先扫一眼有没有漏网之鱼:ps aux | grep "start.php" 或 ps aux | grep YourAppPath。

别只kill主进程PID——要一锅端:kill -9 $(pgrep -f "YourAppPath/start.php")。这条命令会精准匹配所有含start.php路径的php进程并全部杀掉。

开发环境可加临时清理逻辑(生产环境禁用):在start.php最开头插入一行:exec("killall -u $(whoami) php 2>/dev/null");。

如此AI员工
如此AI员工

一款AI办公效率工具,主要用于国内首个全链路营销获客AI Agent,适合需要提升相关任务效率的用户。

下载

第三步:检查register地址是否同步更新

GatewayWorker架构里有两层监听:业务worker(比如new Worker("websocket://0.0.0.0:7272"))和register worker(默认127.0.0.1:1236)。你改了业务端口,但register还卡在旧地址,或者客户端连的仍是旧register地址,就会导致启动失败或连接不上。

方法一:启动时显式指定register新地址:php start.php start -d --register-addr=127.0.0.1:1237。

方法二:检查start_register.php中register worker的监听配置,确保IP和端口与业务worker调用时传入的一致。

方法三:客户端连接代码里,register地址必须同步改成新端口,否则即使服务端启动成功,客户端也注册不进去。

第四步:验证pidFile是否失效

Workerman 3.2.2之前版本默认把pid文件存在/tmp/目录,而很多Linux系统会定时清空/tmp,导致restart时找不到主进程PID,退化成“假重启”——旧worker还在跑,新worker起不来,日志只报一句Address already in use。

升级Workerman到3.2.2或更高版本,pidFile默认改存到项目目录下,不再依赖/tmp。

或者手动指定安全位置:Worker::$pidFile = __DIR__ . '/workerman.pid';,放在start.php开头即可。

执行php start.php kill(Workerman 3.2.2+支持)比手动kill更可靠,它会读pidFile并精准终止主进程及其全部子进程。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

workerman

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
开发工具有哪些
开发工具有哪些

开发工具有:1、集成开发环境IDE;2、版本控制系统VCS;3、自动化构建工具;4、测试工具;5、代码分析工具。本专题为大家提供开发工具有哪些的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.02

2586

5

Workerman安装配置教程
Workerman安装配置教程

Workerman安装配置教程专题提供Workerman安装配置、WebSocket开发、TCP通信、异步编程、高并发服务搭建与PHP实时通信开发教程。

2026.05.20

186

15

Workerman实时通信与长连接开发教程
Workerman实时通信与长连接开发教程

WWorkerman实时通信与长连接开发教程聚合实时通信、聊天室、长连接、消息推送、AI流式输出等Workerman高并发开发内容。

2026.05.20

202

12

Workerman异步通信与TCP服务器开发
Workerman异步通信与TCP服务器开发

Workerman异步通信与TCP服务器开发专题整理Workerman异步通信、TCP服务、HTTP服务、WebSocket开发与高并发PHP服务器教程。

2026.05.20

207

13

Python uv使用教程
Python uv使用教程

本专题汇总了 Python uv 使用教程与高效使用指南,从 uv 安装配置、常用命令到虚拟环境、依赖管理与项目打包,系统讲解如何用 uv 替代 pip 与 poetry,全面提升 Python 项目开发效率,助你快速上手这一现代化包管理工具,打造干净高效的 Python 工作流。

2026.10.15

0

15

剧云AI短剧创作教程合集
剧云AI短剧创作教程合集

本专题聚焦剧云AI短剧创作,讲解从短剧灵感、梗概、全局大纲到分集、分场和正文的完整流程及节奏设计方法。

2026.10.14

0

15

剧云AI剧本创作零基础入门
剧云AI剧本创作零基础入门

本专题系统讲解剧云AI剧本创作流程,涵盖灵感、梗概、大纲、分场与正文生成,帮助新手快速完成首个中文剧本项目。

2026.10.14

0

14

VibeKnow文档转视频操作指南
VibeKnow文档转视频操作指南

本专题讲解VibeKnow上传Word、TXT、Markdown等材料生成视频的方法,覆盖内容解析、脚本组织、画面生成与成片检查。

2026.10.14

0

15

VibeKnow知识视频制作与导出详解
VibeKnow知识视频制作与导出详解

本专题整理VibeKnow从注册、素材上传、AI生成到预览导出的完整操作,帮助新手快速制作第一条知识讲解视频。

2026.10.14

0

13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Webman中文手册
Webman中文手册

共0课时 | 0人学习

Workerman官方手册
Workerman官方手册

共0课时 | 0人学习

ThinkPHP5.1完全开发手册
ThinkPHP5.1完全开发手册

共0课时 | 0人学习