零停机升级 OpenClaw。适用于以下指令:
text
查 release notes → 主公确认无 breaking change →
旁路备份(安全锚点)→ npm install -g(不用本地 build)→
更新 systemd 版本号 → 重启 + 健康检查 →
失败则从备份回滚 / 成功则自动清理
特点:
Restart=always 自动恢复项目说明操作系统Linux(WSL2 亦可)Node.js≥ 22npm任意(需要能访问 npm registry)service 管理systemd user 模式(非必需,无 systemd 仅替换代码)磁盘空间至少 2G 可用网络能访问 registry.npmjs.org 和 api.github.com
npm install -g 全局安装 的(不是 git checkout / 手动构建)systemctl --user 权限npm config get prefix 返回用户可写的目录)脚本会探测安装方式,以下情况会中止并提示:
情况检测方式处理npm global install(推荐)代码目录含 package.json,无 .git✅ 正常升级git checkout代码目录含 .git❌ 中止,提示用 openclaw update运行目录 ≠ npm global 目录systemd ExecStart vs npm root -g 不一致❌ 中止,需先统一npm prefix 不可写npm config get prefix 返回不可写路径❌ 中止,提示配置用户级 prefix运行目录无 package.json目录不存在或为空架子❌ 中止
bash
npm config set prefix "$HOME/.npm-global"
# 确保 $HOME/.npm-global/bin 在 PATH 中
# 然后把 openclaw binary 链接过去:
ln -sf "$HOME/.npm-global/lib/node_modules/openclaw/openclaw.mjs" "$HOME/.npm-global/bin/openclaw"
# 更新 systemd unit 中的 PATH 后重启服务
systemctl --user show <service> -p ExecStart 反推实际运行的代码目录npm root -g 获取 npm global 安装目录完整 cp -r 运行目录到 {运行目录}-fallback。
npm install -g openclaw@latest → 验证版本 → 检查入口文件( dist/*.js 或 openclaw.mjs)→ 如需同步到非一致的运行目录。
更新 unit 文件 OPENCLAW_SERVICE_VERSION。
systemctl --user restart → 最长等 60s。
机制说明旁路备份cp -r 运行目录到 {目录}-fallback自动回滚健康检查失败后从 fallback 恢复 + 重启旧版systemd 兜底Restart=always + StartLimitBurst=5日志落盘所有输出写日志文件人工确认必须展示 release notes,主公确认后再执行兼容性校验检测 git checkout / 目录不一致 / prefix 不可写,提前中止
部分版本可能改动了认证机制。如果升级后 WebChat 提示密码错误:
~/.openclaw/openclaw.json 中的 gateway password 配置bash
systemctl --user status openclaw-gateway
journalctl --user -u openclaw-gateway -n 50
bash
rm -rf $(npm root -g)/openclaw
cp -r $(npm root -g)/openclaw-fallback $(npm root -g)/openclaw
systemctl --user restart openclaw-gateway
bash
clawhub install self-update-zero-downtime