38 lines
1.3 KiB
Bash
Executable File
38 lines
1.3 KiB
Bash
Executable File
#!/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"
|