通过OpenClaw实现副业收入:《OpenClaw赚钱实录:从“养龙虾“到可持续变现的实践指南》
自动化故障排除
本页面用于排查调度器和交付相关问题(cron+heartbeat)。在开始排查之前,建议先确认系统基础服务状态是否正常,例如检查网关连接、日志输出以及通道配置等,以确保问题定位的准确性。
命令阶梯
openclaw status openclaw gateway status openclaw logs--followopenclaw doctor openclaw channels status--probe然后运行自动化检查:
openclawcronstatus openclawcronlist openclaw system heartbeat lastCron 未触发
openclawcronstatus openclawcronlist openclawcronruns--id<JOB_ID>\--limit20openclaw logs--follow正常输出应如下所示:
cron status报告已启用,且nextWakeAtMs为未来的时间戳。- 任务已启用,并具有有效的调度计划/时区。
cron runs显示ok或明确的跳过原因。
常见特征签名:
cron: scheduler disabled; jobs will not run automatically→ 在配置或环境变量中禁用了 cron。cron: timer tick failed→ 调度器计时崩溃;请检查周围的堆栈跟踪或日志上下文。- 运行输出中出现
reason: not-due→ 调用了手动运行但未加--force参数,且任务尚未到执行时间。
Cron 已触发但未交付
openclawcronruns--id<JOB_ID>\--limit20openclawcronlist openclaw channels status--probeopenclaw logs--follow正常输出应如下所示:
- 运行状态为
ok。 - 隔离任务已设置交付模式/目标。
- 通道探测报告显示目标通道已连接。
常见特征签名:
- 运行成功但交付模式为
none→ 预期不会发送外部消息。 - 交付目标缺失或无效(
channel/to)→ 内部运行可能成功,但跳过了出站交付。 - 通道认证错误(
unauthorized、missing_scope、Forbidden)→ 交付被通道凭证或权限阻止。
心跳被抑制或跳过
openclaw system heartbeat last openclaw logs--followopenclaw config get agents.defaults.heartbeat openclaw channels status--probe正常输出应如下所示:
- 心跳已启用,且间隔非零。
- 上次心跳结果为
ran(或者跳过原因是可理解的)。
常见特征签名:
heartbeat skipped且reason=quiet-hours→ 当前处于activeHours之外。requests-in-flight→ 主通道繁忙;心跳被延迟处理。empty-heartbeat-file→ 周期性心跳被跳过,因为HEARTBEAT.md没有可操作的内容,且没有排队的标记 cron 事件。alerts-disabled→ 可见性设置抑制了出站心跳消息。
时区和 activeHours 注意事项
openclaw config get agents.defaults.heartbeat.activeHours openclaw config get agents.defaults.heartbeat.activeHours.timezone openclaw config get agents.defaults.userTimezone||echo"agents.defaults.userTimezone not set"openclawcronlist openclaw logs--follow快速规则:
Config path not found: agents.defaults.userTimezone表示该键未设置;心跳将回退到主机时区(如果设置了activeHours.timezone则使用该值)。- 未指定
--tz的 Cron 使用网关主机时区。 - 心跳 `ac