YouDuck.ai

健康门禁与自动回滚

最后更新

**健康门禁(health gate)**是更新流程的最后一个阶段:新版本装上并重启守护进程之后,系统检查机器人是否健康,不通过就自动回滚

完整的更新阶段

preflight → downloading → verifying → swapping → health_gate

每一步都可能失败,而失败的结果都是「机器人回到它之前跑的版本」,不是「机器人半死不活」。

它对开发的意义

这意味着推一个自己构建的版本是安全操作scripts/dev-push.sh 装的东西走的是完全相同的流程——签名、产物哈希、兼容性、健康门禁、自动回滚一个不少,唯一区别是签名用的密钥不同。

一个起不来的构建会被撤销,你不会把板子推成砖。

一个会误导人的成功案例

门禁正常工作的时候,表现有时候看起来像 bug:

开发板上 apply daemon 不加 --ref 会装稳定版,而如果那个稳定版早于某个现在已有 unit 文件的守护进程,unit 的 ExecStart 会指向旧版本里不存在的二进制 → 重启失败 → 回滚

你会看到「更新失败了」,而实际上是门禁救了你。详见开发板速查

机器人可能已经回滚过

自动回滚不会打扰你,只记在日志里:

robotctl update log
journalctl -b -u robot-boot-check