#!/bin/bash # 伺服驱动选型工具服务器监控脚本 SERVER_DIR="/home/admin/clawd/servo_sizer" PID_FILE="$SERVER_DIR/.server.pid" LOG_FILE="$SERVER_DIR/server.log" PORT=8080 # 检查服务器是否在运行 check_server() { if [ -f "$PID_FILE" ]; then PID=$(cat "$PID_FILE") if ps -p "$PID" > /dev/null; then # 检查端口是否在监听 if lsof -i :"$PORT" > /dev/null 2>&1; then return 0 fi fi fi return 1 } # 启动服务器 start_server() { echo "$(date): Starting servo sizer server..." >> "$LOG_FILE" cd "$SERVER_DIR" nohup ./start_optimized.sh > "$LOG_FILE" 2>&1 & sleep 3 # 验证启动成功 if check_server; then echo "$(date): Server started successfully" >> "$LOG_FILE" return 0 else echo "$(date): Failed to start server" >> "$LOG_FILE" return 1 fi } # 主监控循环 while true; do if ! check_server; then echo "$(date): Server not running, attempting to restart..." >> "$LOG_FILE" start_server fi sleep 30 done