痛点拆解:为什么「我明明执行了 restart」却像没执行
痛点 1:二进制与配置写入版本错位。新版本首次启动会把配置按新 schema 重写并更新 meta.lastTouchedVersion;旧 CLI 仍可能读到同一路径文件,但进程突变操作会被守护逻辑拒绝,表现为命令退出码非零或静默 no-op。
痛点 2:PATH 分叉。brew、npm -g、手工 /usr/local/bin 链接并存时,Terminal 的 which openclaw 与 launchd plist 的 PATH 往往不同;你在终端里「升级成功」,服务单元仍指向旧 dist。
痛点 3:重复安装单元。gateway status --deep 会提示系统级与用户级或历史 plist 残留;不清理时 doctor 与 install 会互相打架。
痛点 4:与 pairing 混淆。pairing required 与 split-brain 都可能让 UI 断连;先确认版本与 PATH再跑配对,见 pairing 文。
痛点 5:与 remote URL 混淆。若 gateway.remote.url 仍指向旧主机,症状像 split-brain 但根因是连错网关;请先读 remote gateway 文 做二分。
现象分层:旧二进制拒绝 vs 真配置损坏 vs 远端误连
L0:同时打印 openclaw --version 与 openclaw gateway --version(若文档提供子命令)并截取 gateway status 中的 Runtime / Capability / Config 摘要。
L1:查看 meta.lastTouchedVersion 与 CLI 报告版本是否同主版本线;若配置被更高版本写过,低版本二进制应停止尝试改服务,先升级 PATH。
L2:执行 openclaw gateway status --deep,记录 Other gateway-like services 与 system-level unit 提示;对照官方「Fix PATH → install --force → restart」顺序。
L3:openclaw doctor 与 openclaw doctor --fix(在版本已对齐前提下)清理阻塞项;涉及安全策略见 4.14 文。
L4:仅在 RPC 绿后进入 channels status --probe;否则转 通道无回复 与 Telegram 静默初始化。
可引用字段:工单里应粘贴的最小证据包
建议固定采集:两条版本串、Config(cli) 路径 vs Config(service) 路径、meta.lastTouchedVersion、which -a openclaw、launchd Label / systemd unit 名、deep 扫描摘要行。升级窗口内每小时追加,便于确认是 PATH 漂移还是重复单元。
若在 远程 Mac 上并行跑文件交付与网关,请同时附上磁盘与 CPU 负载摘要,避免把 IO 饥饿误判为 RPC 故障;与 今日 CI 两段式交付 的资源争用段落可互证。
决策矩阵:先修 PATH 还是先 doctor
| 签名 | 解释 | 首选动作 | 避免 |
|---|---|---|---|
| 旧二进制拒绝服务变更 | lastTouchedVersion 新于 CLI | 修正 PATH 指向新 dist;再 install --force | 在低版本上强行 --fix 破坏 schema |
| deep 报重复网关单元 | 历史 plist/schtasks | 按官方提示禁用多余单元;再 install | 并行保留两套 launchd |
| 仅 Config 路径不同 | 环境变量 HOME 漂移 | 对齐 plist EnvironmentFile 与 shell profile | 手改 JSON 却不 reload 服务 |
| RPC 失败且 remote.url 异常 | 远端误连 | 转 remote 文;校验 URL 与 token | 在 split-brain 上叠加配对重置 |
How-to:七步把同机双安装收敛到单一真源
- 冻结证据:保存
gateway status与--deep全文(脱敏)。 - 列所有 openclaw 路径:
which -a openclaw、ls -l解析符号链接终点。 - 对齐 PATH:让交互 shell 与 launchd/systemd 使用同一
PATH前缀指向新 dist;必要时在 plist 写绝对路径。 - 验证版本一致:CLI 与 gateway 子命令版本同线后再尝试服务变更。
- 重装服务元数据:
openclaw gateway install --force后gateway restart,参见 install 常驻文。 - doctor 闭环:
doctor/doctor --fix清阻塞;保留输出摘要。 - 回归探针:记录 RPC 耗时与一次 UI 成功操作,作为下次升级基线。
示例命令骨架(占位符按环境替换)
which -a openclaw
openclaw --version
openclaw gateway status --deep
openclaw doctor强相关阅读与 CTA
大版本回归与 JSONL 体积见 4.5 文;升级频率与通道见 4.x doctor;生产最小权限见 workspaceAccess。
当你已按官方顺序仍被笔记本睡眠、多份安装与 PATH反复折磨,把网关迁到长期在线远程 Mac通常能显著减少变量:统一守护、稳定入口与和文件交付同机的运维模型,更适合 7×24 Agent。
FAQ 与租赁结论
能否只靠卸载重装解决?
可以,但必须同步清理 PATH 与重复单元,否则重装仍指向旧入口。
docker 与裸机混装要注意什么?
确保只有一个监督者;deep 输出出现多条时按官方顺序禁用多余单元。
正文价值与局限
本文补齐同机 split-brain与 remote 误连 的边界;不能替代官方发行说明与安全审计阅读。
何时选 SFTPMAC 租赁远程 Mac
需要单一真源、724 在线、与产物目录同机观测且不想再为 PATH/plist 漂移买单时,托管节点把基线产品化,你保留令牌与 Runbook。
