AionClaw启动时出现Address already in use等提示,说明默认端口(如8080或3000)被占用,需先查config/settings.json确认端口,再用netstat/lsof定位PID,最后kill释放并curl验证。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

当你启动 AionClaw 本地服务时看到 Address already in use、EADDRINUSE 或界面卡在“正在启动服务…”超过 90 秒,说明系统中已有其他进程占用了 AionClaw 默认监听的端口(通常是 【8080】 或 【3000】),必须立即定位并释放,否则智能体无法加载模型、调度技能、响应飞书/微信指令。
确认 AionClaw 当前配置端口
打开 AionClaw 安装目录下的 config/settings.json 文件,查找 "server" 对象中的 "port" 字段值。若该字段不存在或为 null,则默认使用 【8080】;若配置为 3000、5000 等,则以该值为准。这一步不能跳过——有些企业版安装包会将端口预设为 8081 或 9000 以规避常见冲突,但不会在 UI 中提示。
Windows 系统下快速定位占用进程
方法一:用命令行查 PID 并杀掉
以管理员身份运行 PowerShell,执行:netstat -ano | findstr :8080(把 8080 替换为你实际配置的端口号)
输出结果中最后一列是 PID,例如 TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 12345。
再执行:tasklist /FI "PID eq 12345"
就能看到占用该端口的具体程序名(如 node.exe、java.exe 或 chrome.exe)。
如确认无业务影响,直接执行:taskkill /F /PID 12345
方法二:用资源监视器图形化排查
按 Ctrl+Shift+Esc 打开任务管理器 → 切换到“性能”选项卡 → 点击左下角“打开资源监视器” → 切换到“网络”页签 → 在“监听端口”列表中找到对应端口号 → 查看“进程”列和“模块”列,双击进程可直接跳转到任务管理器高亮项。
macOS/Linux 系统下端口占用诊断
第一步:查端口绑定进程
在终端中执行:lsof -i :8080(替换为你实际端口号)
若返回空,说明该端口当前未被占用;若返回类似:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME<br>node 12345 user 25u IPv6 0xabcde 0t0 TCP *:http-alt (LISTEN)
则说明 PID 为 12345 的 node 进程正监听该端口。
第二步:确认是否为残留进程
执行:ps -p 12345 -o pid,ppid,cmd
检查 CMD 列内容。如果显示的是 /usr/local/bin/node ... aionclaw-server.js 或路径含 OpenClaw、taotoken,大概率是上一次异常退出遗留的后台服务;如果是 python3 -m http.server 8080 或 ruby -run -e httpd,则是开发测试工具临时占位,可安全终止。
第三步:强制释放(谨慎操作)
执行:kill -9 12345
【注意:不要对 PID 小于 100 的进程执行 kill -9,可能中断系统关键服务】
验证端口是否真正释放
① 执行一次空请求检测:curl -I http://localhost:8080/health(将端口号同步替换)
如果返回 curl: (7) Failed to connect,说明端口已空闲;若返回 HTTP/1.1 200 OK 或 404,说明仍有服务在运行。
② 启动 AionClaw 主程序,观察日志输出末尾是否出现:Server running on http://localhost:8080
且无红色报错行。此时打开浏览器访问 http://localhost:8080,能正常加载 Web 控制台即表示定位与释放成功。











