360 Secure SkillHub
360 安全技能中心

Gateway Rescue

这是OpenClaw Gateway的外部看门狗系统,自动适配Linux(systemd)、macOS(LaunchAgent)平台,可一键部署。核心功能为3次启动失败后自动从备份恢复,最多保留2个备份,支持手动/升级前备份,恢复脚本独立不受升级影响。支持安装、卸载、查看状态、故障测试、手动备份等操作,通过bash脚本执行,保障Gateway稳定运行。

aqbjqtd
aqbjqtd
热度 35.59
最近更新 2026-04-08 04:21:48
分类:自动化依赖:代码执行应用场景:自动化脚本 / DevOps / 任务管理 / 工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add gateway-rescue
Metadata
name
gateway-rescue
description
OpenClaw Gateway 外部看门狗系统 v2.1。自动检测平台(Linux systemd / macOS launchctl)并一键部署看门狗,确保 OpenClaw 崩溃后能自动恢复。 当用户提到"看门狗"、"watchdog"、"安装看门狗"、"部署看门狗"、"看门狗状态"、"测试看门狗"、"macOS 看门狗"时触发。 支持:install(安装)、uninstall(卸载)、status(状态)、test(故障测试)、backup(手动备份)。

OpenClaw Gateway Rescue v2.1

外部看门狗 + 自动恢复系统。通过 systemd(Linux)或 LaunchAgent(macOS)管理 Gateway 进程,3次启动失败后自动从备份恢复。

核心特性(v2.1 新增):

  • 🔧 自动恢复机制:3次启动失败后自动解压最新备份并重启网关
  • 🛡️ 恢复脚本独立存放:/usr/local/bin/openclaw-gateway-restore.sh,不受 git/upgrade 影响
  • 💾 备份管理:最多保留 2 个备份,支持手动和升级前触发
  • 📊 恢复日志:$OPENCLAW_DIR/gateway-rescue/restore.log

支持平台:

  • Linux — systemd service(含 OnFailure 恢复 service)
  • macOS — launchctl LaunchAgent(含计数恢复 wrapper)

安装时自动检测平台,无需手动选择。

用法

所有操作通过 exec 执行 bash 调用脚本:

安装(一键部署)

bash ~/.openclaw/workspace/skills/gateway-rescue/scripts/install.sh

自动检测平台、OPENCLAW_DIR、openclaw 二进制。安装后:

  • Linux: 部署 gateway service + restore service + 恢复脚本
  • macOS: 部署 LaunchAgent + 恢复 wrapper + 恢复脚本
  • 自动创建首次备份

卸载

bash ~/.openclaw/workspace/skills/gateway-rescue/scripts/uninstall.sh

停止服务、移除 unit/plist、删除恢复脚本。不删除日志和备份。

查看状态

bash ~/.openclaw/workspace/skills/gateway-rescue/scripts/status.sh

显示:服务状态、恢复脚本、备份文件、恢复日志、Gateway 端口。

故障测试

bash ~/.openclaw/workspace/skills/gateway-rescue/scripts/test.sh

模拟 Gateway 停止 → 等待自动恢复 → 验证端口。

手动备份

bash ~/.openclaw/workspace/skills/gateway-rescue/scripts/backup.sh

创建完整备份(~/.openclaw 打包),最多保留 2 个。

恢复机制

Linux (systemd)

Gateway 启动失败 3 次 (StartLimitBurst=3)
  → systemd 触发 OnFailure
  → openclaw-gateway-restore.service 启动
  → /usr/local/bin/openclaw-gateway-restore.sh 解压最新备份
  → reset-failed + restart gateway service

macOS (launchd)

launchd-wrapper.sh 每次启动计数
  → 连续失败 3 次
  → 调用 /usr/local/bin/openclaw-gateway-restore.sh
  → 解压备份后重置计数
  → launchd KeepAlive 自动重试

恢复脚本

路径:/usr/local/bin/openclaw-gateway-restore.sh

  • 放在升级范围之外,不受 openclaw upgrade / git pull 影响
  • 有并发锁防止重复恢复
  • 完整日志记录到 $OPENCLAW_DIR/gateway-rescue/restore.log
  • 备份来源:$HOME/openclaw-backups/openclaw-full-backup-*.tar.gz

文件结构

gateway-rescue/
├── SKILL.md
├── scripts/
│   ├── install.sh           # 安装 unit + 恢复脚本 + 首次备份
│   ├── uninstall.sh         # 卸载所有 + 删除恢复脚本
│   ├── status.sh            # 状态查看(含备份和恢复日志)
│   ├── test.sh              # 故障测试
│   ├── backup.sh            # 手动/升级前备份(最多2个)
│   ├── restore.sh           # 恢复脚本源码(安装时复制到 /usr/local/bin/)
│   └── launchd-wrapper.sh   # macOS 计数+恢复 wrapper
└── units/
    ├── openclaw-gateway.service          # Gateway service(含 OnFailure)
    ├── openclaw-gateway-restore.service  # 恢复 service(Linux only)
    └── com.openclaw.gateway.plist        # macOS LaunchAgent