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.mdsource 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
- HTTP check — pings
; exits immediately if the gateway respondshttp://127.0.0.1:18789 - Boot grace — if the process is <180s old, waits without acting (avoids killing a booting gateway)
- Port check — if the port is bound but HTTP is slow, waits up to 15s for recovery
- Progressive retry — 3 retries at 15s / 30s / 45s intervals
- 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
in PATHcurl- OpenClaw gateway running under
aslaunchdai.openclaw.gateway