#!/bin/bash # 进程守护监控脚本 - 检测并自动重启崩溃的服务 LOG_DIR="/Users/inkling/Desktop/dmp/logs" WATCH_LOG="$LOG_DIR/watchdog.log" echo "[$(date)] 🔍 进程监控检查..." >> "$WATCH_LOG" # 检查 Node.js 服务器 if ! pgrep -f "node server.js" > /dev/null; then echo "[$(date)] ⚠️ Node.js 服务器已停止,正在重启..." >> "$WATCH_LOG" cd /Users/inkling/Desktop/dmp ./start-daemon.sh >> "$WATCH_LOG" 2>&1 echo "[$(date)] ✅ 服务已重启" >> "$WATCH_LOG" else # 检查服务是否响应 if ! curl -s -f http://localhost:3456 > /dev/null 2>&1; then echo "[$(date)] ⚠️ Node.js 服务器无响应,正在重启..." >> "$WATCH_LOG" pkill -f "node server.js" pkill -f "cloudflared tunnel" sleep 2 cd /Users/inkling/Desktop/dmp ./start-daemon.sh >> "$WATCH_LOG" 2>&1 echo "[$(date)] ✅ 服务已重启" >> "$WATCH_LOG" fi fi # 检查 Cloudflare Tunnel if ! pgrep -f "cloudflared tunnel.*dmp-tunnel" > /dev/null; then echo "[$(date)] ⚠️ Cloudflare Tunnel 已停止,正在重启..." >> "$WATCH_LOG" cd /Users/inkling/Desktop/dmp ./start-daemon.sh >> "$WATCH_LOG" 2>&1 echo "[$(date)] ✅ Tunnel 已重启" >> "$WATCH_LOG" fi echo "[$(date)] ✅ 监控检查完成" >> "$WATCH_LOG"