AI 自动化

一点击就闪退?openclaw doctor 揪出网关未激活、模型鉴权与六步自救 runbook(2026 Mac)

openclaw doctor 命令在 Mac mini 上排查 OpenClaw 网关连接与闪退

你双击快捷方式——或在终端里输入 openclaw——窗口一闪就消失了。没有堆栈跟踪,没有友好对话框,只有沉默。与此同时 Slack 仍显示「gateway not active」,模型选择器一直转圈,昨天你点掉的权限弹窗又以红字出现。这不是「你不懂电脑」;这是环境漂移:Node 版本不对、用户不对、配置文件不对,或 gateway 进程根本没在 launchd 下存活。

openclaw doctor 是 OpenClaw 官方自检命令。它会输出结构化清单——CLI 是否在 PATH 上、配置是否可读、gateway 是否可达、认证配置、磁盘余量——让你一行一行修,而不是照着博客重装一遍。本教程是新手救援通道:doctor 检查什么、如何读懂黄行与红行、可粘贴进工单的六步操作手册,以及新手常见两种故障的排查配方。若你在租用 Mac 上完成 onboarding 后需要 SLA 级验收,请读单独的 onboarding 后 doctor 矩阵;本文针对的是「今天又崩了」

首次提及时可搭配 OpenClaw 零小时安装契约(Node 22+ 底线)、速率限制与预算告警(避免重试被误判为崩溃),以及本地模型替代云密钥时的 OpenClaw + Ollama。上游安装参考:OpenClaw 安装脚本gateway 配置示例。硬件背景:Apple Mac mini 规格

披露说明:仅在租用 Mac 为新手提供干净 SSH shell 运行 openclaw doctor 时提及 KvmZone。多数步骤在你已有的 Mac 上同样适用。

为何 doctor 胜过从零重装

新手描述的症状doctor 通常揭示的原因
启动时终端「闪退」Shell 配置不对;非 login shell 下 CLI 不在 PATH
界面显示「gateway not active」守护进程未运行;端口冲突;plist 用户陈旧
模型始终连不上缺少 API key 环境变量;认证配置指向错误文件
macOS 更新后出现权限错误TCC 弹窗被拦;doctor 标记 Keychain / 完全磁盘访问缺口
可引用规则:rm -rf ~/.openclaw 之前先运行 openclaw doctor。不修复 PATH 或 launchd 用户不匹配就重装,不到十分钟会复现同样崩溃。

在中国大陆,npm 镜像慢或出口带宽受限时,registry 超时常被误当成「OpenClaw 坏了」——doctor 的网络/TLS 行是你第一份证据。香港或新加坡的租用 Mac 主机对 doctor 本身并非必需。

架构:openclaw doctor 检查什么

Terminal / launchd → openclaw CLI → doctor module → reads ~/.openclaw/* → probes gateway HTTP → prints PASS/WARN/FAIL lines

文件与角色

组件路径 / 命令用途
实时配置~/.openclaw/openclaw.jsonGateway 端口、认证配置、模型路由
日志~/.openclaw/logs/(典型路径)doctor 全绿后的崩溃证据
CLI 二进制which openclaw必须与 launchd 使用的路径一致
Node 运行时node -v → 2026 年底线 v22.xNode 不匹配是「秒退」的头号原因
Gateway 探测doctor 之后运行 openclaw status确认进程在跑,而不只是配置语法正确
非 login 一致性sudo -u <daemon-user> openclaw doctor捕获「只在终端里能用」的情况

Doctor 不能替代压测或 webhook POP 规划——那是 onboarding 后矩阵 的事。它告诉你是否已经有理由怪模型供应商。

决策矩阵:崩溃类型 → 首条命令

若你看到…先运行若 doctor 对 PATH 报 WARN合并策略
窗口在 <2s 内关闭在 Terminal.app 中运行 openclaw doctor修复 ~/.zprofile / ~/.zshrc;通过 nvm 或 Homebrew 只保留一个 NodePATH 未变绿前不要启动 gateway
界面:gateway not activeopenclaw doctor + openclaw status重载 launchd plist;对齐 UserNamestatus 未 OK 90 秒前不要演示
模型聊天 401/403doctor 认证段在 plist 的 EnvironmentVariables 中导出密钥轮换密钥;重新运行 doctor
挂起 >60s 后退出doctor + df -h /可用空间 < 18GB → 清理 npm/skills加新 skill 前先扩容磁盘

推荐路径:若 shell 闪退,先交互式运行 doctor——不要通过 GUI 快捷方式调试。若 doctor 全绿但菜单栏 agent 仍显示 inactive,launchd 用户和端口,而不是 LLM API key。

六步 openclaw doctor 救援手册

Step 1 — 打开真实 shell(不要双击别名)

# macOS: use Terminal.app or iTerm — note the user name
whoami
echo $SHELL

保存输出;跳过 login shell 的快捷方式会隐藏 PATH 修复。

Step 2 — 确认 Node 22+ 且 CLI 在 PATH 上

node -v
which openclaw
openclaw --version

通过标准:node 报告 v22 或更新;which openclaw/opt/homebrew 或你文档化的全局前缀下返回单一路径。

Step 3 — 运行 doctor 并保存 transcript

openclaw doctor 2>&1 | tee ~/openclaw-doctor-$(date +%Y%m%d).log

将此文件附在任何支持工单上。每做一次修复后重跑——不要堆叠猜测。

Step 4 — 修复第一条 FAIL(通常是 PATH 或 config JSON)

# Example: validate JSON before restart
python3 -m json.tool < ~/.openclaw/openclaw.json > /dev/null && echo "JSON OK"

若 JSON 失败,从备份恢复:

cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.bak.$(date +%Y%m%d)

Step 5 — 对齐 daemon 用户(gateway inactive 修复)

# See which user launchd uses (label varies by install)
launchctl print system/com.openclaw.gateway 2>/dev/null | head -20
# Run doctor as that user if different from Step 1
sudo -u _openclaw openclaw doctor 2>&1 | tee ~/openclaw-doctor-daemon.log

通过标准:交互式与 daemon 两份 transcript 一致,或每个差异都有文档说明。

Step 6 — 重启 gateway 并验证 status

openclaw gateway restart   # or launchctl kickstart per your install doc
sleep 5
openclaw status
openclaw doctor

通过标准:status 显示监听端口;doctor 无未解释的 FAIL 行。然后——且仅然后——再试 agent 或快捷方式。

对于仅 SSH 的租用主机,使用 远程 Mac SSH 工作流,除非文档化的 GUI 门禁明确要求,否则不要用像素级远程工具。

故障排查

错误模式:zsh: command not found: openclaw(或窗口秒关)

症状:脚本或 .app 包装器在 UI 出现前退出;doctor 从未运行。

修复:

echo 'export PATH="/opt/homebrew/bin:$PATH"' >> ~/.zprofile
source ~/.zprofile
npm install -g openclaw@latest
openclaw doctor

launchd plist 的 EnvironmentVariables 中对齐相同 PATH(见 零小时契约)。

错误模式:gateway not active / ECONNREFUSED 127.0.0.1

症状:CLI 存在;UI 或 openclaw status 无法连本地 gateway。

修复:

lsof -iTCP -sTCP:LISTEN | grep -i openclaw
openclaw doctor
openclaw gateway restart

若端口被其他用户占用,停止孤儿进程或修改 ~/.openclaw/openclaw.json 中的 gateway.port,然后重跑 doctor。Gateway 稳定后配置 速率限制——重试风暴感觉像崩溃。

FAQ

openclaw doctor 会删除我的 agent 或 skill 吗?+
不会。Doctor 是只读诊断加修复建议。它可能提示你编辑 ~/.openclaw/openclaw.json 或释放磁盘,但不会清空 ~/.openclaw,除非你单独运行卸载命令。
为何 doctor 在终端里通过,在 cron/launchd 里失败?+
非 login shell 加载不同的 profile 文件。修复方式是将 PATH 和 API key 导出复制到 plist,或使用 launchctl config user path——见 Step 5 文档。
「gateway not active」总是网络问题吗?+
通常是本地问题:daemon 停了、端口错了、macOS 用户错了。只有在 doctor 和 openclaw status 全绿后再追 CDN/区域;webhook 地理见 onboarding 后 POP 矩阵
新手应多久运行一次 doctor?+
每次 macOS 更新、OpenClaw 升级或莫名崩溃之后——向同事演示前还要以 daemon 用户跑一次。主机健康时每次运行不到 90 秒
在东京或首尔租用的 Apple Silicon Mac mini 上能用 doctor 吗?+
可以。Doctor 是同一套 CLI;区域只影响之后的 webhook 延迟。东京/首尔节点在回调源自 APAC 时有帮助——可选,对 doctor 非必需。

仅在需要干净 SSH 实验环境时再 Compare 地域

多数 doctor 步骤在你已有的 Mac 上即可完成。若需租用机做 daemon 用户对照,可在定价页 Compare 六地域 Mac mini M4,并按 webhook 入口选节点。