最近在使用OpenClaw时遇到一个奇怪的问题:通过"openclaw gateway start"或"restart"无法启动网关但直接双击"gateway.cmd"或在命令行中手动运行node命令却能成功启动。这导致无法通过OpenClaw的服务管理来控制网关,影响日常使用。经过排查,小编终于找到了问题根源并有了稳定的解决方案。

【问题现象】

-执行"openclaw gateway restart"网关无法启动
- 执行"openclaw gateway status"显示服务已注册,但网关未运行(Runtime: unknown)。
- 手动运行(对应自己的node文件)

D:\nodejs\node.exe D:\nodejs\node_global\node_modules\openclaw\dist\index.js gateway --port 18789

可以正常启动,浏览器也能访问"http://127.0.0.1:18789/"。
- 再次运行"openclaw gateway start"依然无法启动,且没有明确错误提示。

【初步排查】
通过"openclaw gateway status"获取信息:
Service: Scheduled Task (registered)
Command: D:\nodejs\node.exe ... gateway --port 18789
Config: C:\Users\cal17\.openclaw\openclaw.json
RPC probe: failed

表明网关服务作为Windows计划任务已注册,但健康检查失败。查看计划任务列表:

schtasks /query /fo LIST /v | findstr /i "openclaw claw gateway bot.molt"


输出显示任务名为"\OpenClaw Gateway",启动命令指向"C:\Users\cal17\.openclaw\gateway.cmd"。(对应你的gateway.cmd文件)

检查gateway.cmd内容,参数正确且与手动运行命令一致,说明批处理本身没问题。

【关键发现:工作目录缺失】
进一步查看计划任务详细信息:

schtasks /query /tn "\OpenClaw Gateway" /fo LIST /v


重点关注:
- 运行用户: cal17(正确)
- 要运行的任务: C:\Users\cal17\.openclaw\gateway.cmd(正确)
- 起始于: N/A(这里为空!)

计划任务启动时,如果没有指定“起始于”目录,默认工作目录可能是"C:\Windows\System32"。而OpenClaw在运行过程中可能会使用相对路径读取配置文件或写入临时文件,由于工作目录错误导致启动后立即崩溃,表现为“启动成功”但进程不存活。

【尝试修复计划任务】
使用命令行修改

schtasks /change /tn "\OpenClaw Gateway" /tr "cmd /c cd /d 你的.openclaw地址 && 你的gateway.cmd地址"


schtasks /change /tn "\OpenClaw Gateway" /tr "cmd /c cd /d C:\Users\cal17\.openclaw && C:\Users\cal17\.openclaw\gateway.cmd"

(绝对路径)
 

【最终稳定方案:开机启动替代计划任务】


既然手动运行一直稳定,何不让系统自动以手动方式启动网关?完全绕开计划任务,避免环境差异。


1. 确保手动启动方式可靠:双击gateway.cmd能正常启动网关,浏览器可访问。

(如果觉得会影响电脑运行,那就坚持用手动启动,或者编写脚本启动gateway.cmd即可)


2. 将gateway.cmd添加到开机启动:
   按Win+R,输入shell:startup打开启动文件夹。
   创建gateway.cmd的快捷方式并放入该文件夹。
3. 测试:重启电脑,观察网关是否自动启动(通过任务管理器查看node.exe进程或访问http://127.0.0.1:18789/确认)。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐