Kubernetes 让「readiness」与「liveness」成为通用语;无头租用 Mac mini M4 上的 OpenClaw 同样需要纪律,但不必假装 launchd 就是 kubelet。 本文定义长驻网关进程上两类探针:readiness 回答「可以接用户流量了吗?」;liveness 回答「进程是否卡死到值得 SIGTERM?」。两者映射到可脚本化的 HTTP 或套接字检查,并把启动顺序与 ThrottleInterval、依赖 plist 成对关系绑定,最后给出上游 LLM API 限流时的优雅降级。请与 首次安装指南、网关 SRE:日志与重启、故障退出码与日志 交叉引用,避免探针沦为孤立的 bash 单行。硬件语境:M4 十核、16GB 统一内存、香港/日本/韩国/美国约 1Gbps——超时请按机房级网络假设,而非家用 Wi‑Fi。
团队常在两个极端翻车:二进制一起动就标「就绪」——API 密钥尚未装载;或任何依赖返回 HTTP 503 就激进重启——而对方只是慢并非宕机。修复方式是拆分检查脚本、拆分退出码,并在面板上把探针失败与依赖延迟同图展示。
在无头 macOS 上,通常用 LaunchDaemon 或用户 LaunchAgent 包裹 OpenClaw 并配置 KeepAlive。readiness 属于预绑定钩子或由编排侧在切换负载均衡标志前调用的脚本;liveness 属于周期性执行,阈值应保守,避免短暂 GC 停顿误杀进程。
- Readiness: 依赖可达、配置已解析、监听套接字已绑定(若适用)、最小技能集已加载。
- Liveness: 事件循环有响应;最近成功心跳在 SLA 内;磁盘未满;僵尸子进程未超阈值。
- 二者都不替代可观测性: 探针粗糙;结构化日志仍是权威——见 网关 SRE 文章。
探针类型 绿色条件 误报陷阱 缓解 本地管理端口 HTTP readiness 200,含版本与构建戳 模型尚未预热就返回 200 在 JSON 体上显式门控「warm」标志 TCP connect liveness 超时内完成 accept 端口开但进程假死 配对进程内心跳文件的 mtime 依赖 ping(LLM API) 令牌桶允许探针调用 429 被误判为宕机 分类 HTTP 码;退避,不重启 磁盘空间 APFS 可用容量 > 阈值 切换窗口日志暴涨 与 SRE 指南中的轮转对齐;先告警后重启
门控 失败时 文档落点 密钥注入晚于 plist 加载 readiness 非零退出;不进入负载 退出码表 日志目录不可写 readiness 失败;修复权限而非重启风暴 轮转与路径 首次引导未完成 保持在安装 runbook 末尾的「探针已提交」检查项 首装指南
- 对可能因密钥晚到秒级而崩溃循环的包装器使用
ThrottleInterval,并与保险库注入节奏配对。
- 与安装 runbook 中 Keychain 访问方式一致地声明
SessionCreate 或显式用户上下文。
ProgramArguments 使用绝对路径;SSH 会话与 launchd 下 UID 不同时相对路径会碎。
- 加载前用
plutil -lint 校验 plist。
- 在与守护进程相同 UID 下手动跑 readiness——不要用管理员 SSH 会话冒充。
- 短期打开详细日志到已轮转路径;对照 退出码排查 中的模式。
- 仅在 readiness 通过后引入合成流量;记录首次端到端技能调用成功。
- 挂载 liveness,超时至少取依赖延迟中位数的 2×。
- 文档化每小时重启预算;若对客户可见,与 帮助 中的值班政策对齐。
- 把探针脚本与主机元数据并列归档,确保 控制台 文档链接可触达。
当上游 429 或延迟升高时,优先限流——队列深度上限、缓存的「降级模式」应答——再考虑 launchctl kickstart -k。重启会清空内存缓存并常加剧惊群;若存在多发射器,请与 CI 并发文章中的并发指引结合。
若通过 VNC 暴露仅供破窗的简易健康 UI,请把它移出 liveness 路径——人类比探针慢。
每次探针执行输出一行 JSON 到统一日志:探针名、耗时毫秒、HTTP 状态或 errno、脱敏后的依赖标识。将 p50/p95 与进程 CPU 同图,值班才能区分「提供商慢」与「热循环」。readiness 抖动时,与 diskutil apfs listSnapshots 峰值或 网关 SRE 文章 中的轮转事件关联——根因常常是 I/O 而非 OpenClaw 逻辑。
在服务用户主目录下用小状态文件记录上次 readiness 成功时间戳;liveness 读取者可对比墙钟,避免「readiness 已静默失败却仍显示存活」。该模式与 退出码分类 配对,使自动修复脚本与人类共享词汇。
- liveness 应每分钟调用 LLM 吗? 否——本地轻量心跳即可,昂贵检查稀疏调度。
- readiness 失败应用什么退出码? 非零并写 stderr 到 syslog;与 故障指南 中的表一致。
- 与首次开机关系? 首装指南 应以「探针已提交」收尾,而非仅「二进制可运行」。
- 预发探针的额外容量? 按 定价 为金丝雀检查准备第二台专用 M4。
Apple Silicon M4 为 HTTP 健康端点提供可预测的单线程性能,并有足够 RAM 在 OpenClaw 旁侧驻留模型热缓存。香港、日本、韩国、美国约 1Gbps 对称带宽让探针流量不易与大体量制品同步争抢——前提是超时按现实网络设定。通过 ZoneVM 定价 并行租用生产与金丝雀主机,可在相同探针脚本下隔离软件漂移与硬件方差。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/272351.html