- Gateway 的后台守护进程(daemon)还在运行
- 有残留进程继续占用端口
快速解决:彻底停止 Gateway
请按以下步骤操作,确保服务完全停止:
步骤 1:检查当前服务状态
bash
复制下载
openclaw gateway status
如果显示 Runtime: running,说明服务确实还在运行。
步骤 2:核查端口占用情况
bash
复制下载
lsof -i :18789
你会看到类似这样的输出:
COMMAND PID USER TYPE DEVICE SIZE/OFF NODE NAME
node 4821 yourname IPv6 0t0 TCP *:18789 (LISTEN)
记下 PID 号(这里是 4821)。
步骤 3:彻底停止所有相关进程
# 方式一:使用 pkill 批量清理所有 OpenClaw 进程
pkill -f "openclaw"
# 方式二:如果 pkill 无效,按 PID 强制终止(替换为你的 PID)
kill -9 4821
步骤 4:验证端口已释放
bash
lsof -i :18789 # 应该没有任何输出
步骤 5:确认服务已停止
bash
openclaw gateway status
# 应该显示 Runtime: stopped 或类似状态
步骤 6:如果需要重新启动
bash
openclaw gateway start
如果问题仍然存在
方案一:强制重装 Daemon 元数据(解决状态不一致)
有时候进程已死,但元数据文件还在,导致状态判断错误-1:
bash
openclaw gateway install --force
openclaw gateway start
方案二:使用 --force 标志停止
bash
openclaw gateway stop --force # 强制终止
方案三:修改端口(绕过问题)
如果端口始终无法释放,可以临时换个端口:
bash
openclaw config set gateway.port 18790
openclaw gateway start
之后访问地址变为:http://127.0.0.1:18790
原因说明
openclaw gateway stop 未能完全停止服务,通常是因为:
| 可能原因 | 说明 |
|---|---|
| 守护进程仍在后台 | Gateway 可能以 systemd/launchd 服务形式安装,gateway stop 只停止前台进程-5 |
| 进程残留 | 强制关闭终端或系统异常退出后,进程未被清理 |
| PID 文件过期 | 元数据记录了已停止进程的信息,导致状态不一致 |
按照上面的步骤操作后,浏览器页面应该就无法访问了。如果还有其他问题,欢迎继续追问。