Files

49 lines
1.2 KiB
Bash
Raw Permalink Normal View History

#!/bin/bash
# Auto-restart loop for OpenClaw Command Center
# Keeps the dashboard running with exponential backoff on crashes
set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
DASHBOARD_DIR="$(dirname "$SCRIPT_DIR")"
LOG_DIR="${HOME}/.openclaw-command-center/logs"
LOG_FILE="${LOG_DIR}/dashboard.log"
mkdir -p "$LOG_DIR"
# Backoff settings
INITIAL_DELAY=1
MAX_DELAY=30
DELAY=$INITIAL_DELAY
cd "$DASHBOARD_DIR"
# Ensure node is available (nvm support)
if [ -f "$HOME/.nvm/nvm.sh" ]; then
source "$HOME/.nvm/nvm.sh"
fi
echo "🦞 OpenClaw Command Center - Auto-restart loop"
echo " Logs: $LOG_FILE"
echo " Press Ctrl+C to stop"
echo ""
while true; do
echo "[$(date)] Starting dashboard..." | tee -a "$LOG_FILE"
# Run the server
if node lib/server.js 2>&1 | tee -a "$LOG_FILE"; then
# Clean exit
echo "[$(date)] Dashboard exited cleanly" | tee -a "$LOG_FILE"
DELAY=$INITIAL_DELAY
else
# Crash - backoff
echo "[$(date)] Dashboard crashed! Restarting in ${DELAY}s..." | tee -a "$LOG_FILE"
sleep $DELAY
DELAY=$((DELAY * 2))
if [ $DELAY -gt $MAX_DELAY ]; then
DELAY=$MAX_DELAY
fi
fi
done