#!/bin/bash # 监控 Receipt Printer 服务器,如果停止则自动重启 PIDFILE="/tmp/receipt-printer.pid" LOGFILE="/home/ching/.openclaw/workspace/receipt-printer/server.log" check_and_restart() { # 检查健康端点 if ! curl -s http://localhost:3000/health >/dev/null 2>&1; then echo "[$(date)] Server not responding, restarting..." # 尝试杀掉旧进程 if [ -f "$PIDFILE" ]; then OLD_PID=$(cat "$PIDFILE" 2>/dev/null) kill "$OLD_PID" 2>/dev/null sleep 1 fi # 重启 cd /home/ching/.openclaw/workspace/receipt-printer bun run src/server.ts >> "$LOGFILE" 2>&1 & echo $! > "$PIDFILE" echo "[$(date)] Server restarted with PID: $!" fi } # 每分钟检查一次 while true; do check_and_restart sleep 60 done