gateway-watchdog
name: gateway-watchdog
by bryantegomoh · published 2026-04-01
$ claw add gh:bryantegomoh/bryantegomoh-gateway-watchdog-v2---
name: gateway-watchdog
description: 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.
---
# 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.plistUsage (manual)
bash scripts/gateway-watchdog.shRequirements
More tools from the same signal band
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
Sign plugins, rotate agent credentials without losing identity, and publicly attest to plugin behavior with verifiable claims and authenticated transfers.
The philosophical layer for AI agents. Maps behavior to Spinoza's 48 affects, calculates persistence scores, and generates geometric self-reports. Give your...