故障现象
Gateway 状态显示 supervised,服务起不来。systemd 日志里只有笼统的错误信息,没有提到端口冲突。
# 看状态:显示 supervised 但进程不存在
systemctl --user status openclaw-gateway.service --no-pager
排查过程
- 检查进程状态 —
systemctl --user status发现 Gateway 进程缺失 - 手动启动 — 直接运行 Gateway 二进制,报端口占用
- 定位占用者 —
ss -tlnp | grep 18789找到占用端口的进程 - 杀掉占用进程 —
kill <pid> - 重启 Gateway —
systemctl --user restart openclaw-gateway.service,启动成功
# 查端口占用
ss -tlnp | grep 18789
# 杀占用进程
kill <pid>
# 重启
systemctl --user restart openclaw-gateway.service
根因与教训
Gateway 默认端口 18789 被其他服务抢占
- 典型表现
- 同一台机器上其他进程绑定了同一端口,Gateway 无法监听
- 判断标准
- 解决方向
- 杀掉占用进程或修改 Gateway 监听端口
systemd 不报告端口冲突
- 典型表现
- systemd 只看到进程退出,不知道具体原因是端口绑定失败
- 判断标准
- 解决方向
- 手动启动二进制文件才能看到真实错误信息