核心用法
graceful-restart 是专为 OpenClaw Gateway 设计的运维保障 skill,解决重启后会话上下文丢失的顽疾。用户触发"重启"指令后,skill 自动执行三步流程:
1. 预置唤醒任务:在主会话中创建一次性 cron 任务(默认 10 秒后触发)
2. 执行重启:安全重启 Gateway 进程
3. 自动恢复:重启完成后,cron 的 system event 通过 heartbeat 轮询交付,主动发送消息唤醒主会话
支持自定义任务描述(--task)和延迟时间(--delay,默认 10 秒,单位秒)。
显著优点
- 零中断体验:彻底告别"重启后手动触达"的繁琐操作
- 上下文保全:任务记忆随会话恢复,长流程任务(如软件安装、配置变更)得以延续
- 一次性清理:cron 任务带
--delete-after-run标记,用完即焚,无残留 - 机制可靠:基于 system event + heartbeat 的成熟交付链路,非 hack 方案
潜在局限与风险
- 硬依赖 OpenClaw CLI:必须在 OpenClaw 生态内运行,无法独立部署
- 延迟窗口敏感:若 Gateway 重启耗时超过 cron 延迟(默认 10s),可能出现"任务到达但服务未就绪"的竞态条件,建议复杂环境调大
--delay - 单点会话依赖:仅恢复"主会话"(
--session main),多会话场景下非主会话任务会丢失 - 无回滚机制:若重启失败(如配置错误导致起不来),cron 任务可能悬置或失效,需人工介入检查
适合人群
- OpenClaw 深度用户:频繁变更 Gateway 配置、需要热重启的开发者与运维
- 长会话任务场景:执行耗时指令(批量安装、数据迁移)时被迫重启,期望"从断点续传"
- 自动化运维:将 Gateway 重启纳入 CI/CD 流程,要求无人值守的自愈能力
常规风险
- 误用 exec 风险:文档多次强调禁止直接用
exec openclaw gateway restart,否则丢失上下文且无法恢复 - 时间参数误配:
--delay过短导致唤醒失败,过长则用户体验受损 - 权限与路径:需确保对
~/.openclaw/workspace/skills/路径及 cron 系统的写入权限
与裸重启的本质区别
| 方式 | 上下文保留 | 自动恢复 | 推荐场景 |
|------|-----------|---------|---------|
| `exec openclaw gateway restart` | ❌ 丢失 | ❌ 需手动 | 紧急强制重启 |
| `graceful-restart` | ✅ 保留 | ✅ 自动 | 常规维护、配置热更新 |