Skills gateway-watchdog

Production-grade bash watchdog for the OpenClaw gateway. Runs via launchd every 5 minutes. Handles boot grace periods, progressive retry with backoff, port-level fallback checks, stale PID detection, and restart cooldowns — preventing restart loops while keeping the gateway reliably alive.

install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/bryantegomoh/gateway-watchdog-v2" ~/.claude/skills/clawdbot-skills-gateway-watchdog && rm -rf "$T"
manifest: skills/bryantegomoh/gateway-watchdog-v2/SKILL.md
source content

gateway-watchdog

Keeps the OpenClaw gateway alive without killing it during startup. Five defensive layers prevent false restarts and restart loops.

How It Works

  1. HTTP check — pings
    http://127.0.0.1:18789
    ; exits immediately if the gateway responds
  2. Boot grace — if the process is <180s old, waits without acting (avoids killing a booting gateway)
  3. Port check — if the port is bound but HTTP is slow, waits up to 15s for recovery
  4. Progressive retry — 3 retries at 15s / 30s / 45s intervals
  5. Cooldown — enforces a 10-minute gap between restarts to prevent loops

Logs go to

~/.openclaw/logs/watchdog.log
.

Setup (macOS launchd)

Create

~/Library/LaunchAgents/com.openclaw.gateway-watchdog.plist
:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.openclaw.gateway-watchdog</string>
    <key>ProgramArguments</key>
    <array>
        <string>/bin/bash</string>
        <string>/path/to/skills/gateway-watchdog/scripts/gateway-watchdog.sh</string>
    </array>
    <key>StartInterval</key>
    <integer>300</integer>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

Then load it:

launchctl load ~/Library/LaunchAgents/com.openclaw.gateway-watchdog.plist

Usage (manual)

bash scripts/gateway-watchdog.sh

Requirements

  • macOS (uses
    launchctl
    ,
    lsof
    ,
    date -j
    )
  • curl
    in PATH
  • OpenClaw gateway running under
    launchd
    as
    ai.openclaw.gateway