核心用法
graceful-restart 是专为 OpenClaw Gateway 设计的优雅重启方案。当 Gateway 重启时,系统会丢失上一轮会话的任务上下文,导致主会话中断且无法自动恢复。本 skill 通过在重启前预置一次性 cron 任务(默认 10 秒后触发),在 Gateway 恢复后自动向主会话发送唤醒消息,实现任务的无缝续接。
触发方式:
- 自然语言:用户说"重启"或"restart Gateway"时自动触发
- 命令行:
node ~/.openclaw/workspace/skills/graceful-restart/graceful-restart.js --task "继续安装 Python 包" --delay 60
技术原理:
- 利用
--session main+--system-event机制 - Cron 在主会话注入 system event,Gateway 重启后通过 heartbeat 轮询交付
- 主会话收到消息后自动回复用户,恢复任务上下文
显著优点
1. 会话连续性保障:彻底解决重启后任务中断问题,无需用户手动介入
2. 零配置自动化:触发词即执行,默认参数覆盖大多数场景
3. 灵活可定制:支持 --task 指定恢复任务、--delay 调整延迟时间、--delete-after-run 自动清理
4. 与 SOUL.md 集成:建议更新自动触发规则,提升系统智能化水平
潜在缺点与局限性
1. 延迟不确定性:默认 10 秒延迟可能不适用于启动较慢的环境,需手动调整
2. 依赖 openclaw CLI:必须安装并正确配置 openclaw 环境
3. 单次任务限制:cron 任务为一次性,若重启失败需人工排查
4. 权限要求:需具备执行 Gateway 重启及 cron 任务管理的权限
适合人群
- 需要频繁更新 Gateway 配置或插件的开发者
- 运行长耗时任务且不希望中断的生产环境用户
- 追求自动化运维、减少人工干预的技术团队
常规风险
| 风险项 | 说明 |
|--------|------|
| 误用 exec 重启 | 直接用 `exec openclaw gateway restart` 将导致会话永久丢失,必须严格使用本 skill |
| 延迟设置过短 | 若 `--delay` 小于实际启动时间,唤醒消息可能丢失 |
| 多重启冲突 | 短时间内多次重启可能导致 cron 任务堆积,建议设置合理间隔 |
最佳实践
始终在 SOUL.md 中配置自动触发规则,确保"重启"关键词被正确路由到本 skill,避免用户或系统误用原始 exec 命令。