在生产无头 Mac 上升級 OpenClaw 并不是「停服务 → brew upgrade → 再起」——Webhook 与 skill 仍需在线。 蓝绿即两套安装根——例如 /opt/openclaw/green 与 /opt/openclaw/blue——以及供 launchd 通过 ProgramArguments 引用的符号链接 /opt/openclaw/current。先预热空闲槽,原子翻转符号链接,探测成功后再下线旧槽。本文将健康门禁映射到 就绪与存活探测,配置波动映射到 热重载对比全量重启,失败签名映射到 退出码与日志排障,装机映射到 首次安装指南,密钥映射到 钥匙串与环境变量 API 令牌;Webhook 重试与幂等详见 Webhook 出站文章。硬件:Apple M4、十核、16GB 统一内存,港/日/韩/美约千兆对称——被动槽下载仍耗时,但原子性是文件系统层面的问题。
翻转前必须在空闲槽做一次合成 Webhook 回放——名义上的绿实则未就绪比坦诚停机更糟糕。
两槽保持在同一 macOS 小版本列车;混用会破坏 Swift 运行时假设。
翻转脚本也要版本化进 git;在聊天里随手 ln -sf 只会让回滚变成考古。
- 「只靠 symlink 就够」。 已运行进程仍持有旧二进制句柄——配合
launchctl kickstart -k 或优雅退出。
- 「两个 plist 就意味着两个端口始终在线」。 只能有一个监听;被动槽应以
--dry-run 或备用端口做冒烟。
- 「蓝绿就没有数据库迁移风险」。 共享磁盘状态仍要向后兼容 schema。
- 「回滚瞬间完成」。 反向 symlink 加进程回收仍要秒级——SLA 如实写。
阶段 活动槽 被动槽 稳态 服务流量;日志带版本字段 停止或空闲 准备升级 不变 安装 bits;兼容则跑迁移 金丝雀 仍为主 经备用队列收合成任务 翻转 排空后变被动 经 symlink + 重启晋升
可用 com.example.openclaw.blue 与 com.example.openclaw.green 等标签,但只应启用指向 current 的跟随者经由封装脚本。封装脚本把解析路径打进日志,值班能看某次请求由哪色服务——字段对齐 探测 JSON。
不要在两槽重复 OAuth refresh 或 Webhook 签名密钥——除非提供商支持并行 issuer。首选在 令牌存放指南 里写明的只读共享 secret 挂载,这样 ACL 轮换一次即可,而非每色一次。
- 快照磁盘 或 tarball 被动槽基线。
- 在被动路径安装新构建;跑单元冒烟。
- 重放 Webhook:按 Webhook 文章 使用幂等键——有 shadow 队列则走 shadow。
- 排空活动侧 worker 队列至深度零。
- 翻转 symlink;重启引用封装的服务。
- 观察探测 两个探测周期;若红,反向 symlink 并按 分诊表 重启。
- 绿指标稳定一工作日后再回收旧槽;把新版本 pin 写回 首装文档。
- APFS 写时复制有帮助吗? 对重复目录树有利,但安全仍要版本化工件。
- 必须 GUI 验证? 少用 VNC;真相应在探测里。
- 想要独立硬件而非双槽? 在 定价 对比第二台被动 Mac。
Apple M4 快速编译两棵 OpenClaw 树,16GB 统一内存支撑并行冒烟,港/日/韩/美千兆对称缩短被动槽预热下载。通过 ZoneVM 定价 租用专用 Mac mini M4,symlink 目标路径稳定,无笔记本路径随机化干扰。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/282314.html