#!/bin/bash # Agent自动启动监控脚本 - 改进版:使用带自动git pull的监控脚本 # 当Agent启动时,自动启动监控脚本(带自动git pull) AGENT_NAME="$1" if [ -z "$AGENT_NAME" ]; then echo "使用方法: ./agent_auto_start.sh " echo "例如: ./agent_auto_start.sh pangtong" exit 1 fi # 项目目录:自动检测脚本所在位置,不需要硬编码 # SCRIPT_DIR: .../sanguo_quant_live/management/workflow/scripts # 三次 dirname 回到项目根目录 SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(dirname "$(dirname "$(dirname "$SCRIPT_DIR")")")" cd "$PROJECT_ROOT" || { echo "❌ 无法进入项目目录: $PROJECT_ROOT" exit 1 } # 检查是否已经运行 if ps aux | grep "agent_monitor_fixed.sh $AGENT_NAME" | grep -v grep | grep -q .; then echo "✅ $AGENT_NAME 监控已经在运行" exit 0 fi # 启动全自动化监控(集成git pull/处理/git push) # 使用tee同时输出到stdout和日志文件,这样聊天窗口能看到,日志也有记录 echo "🚀 启动 $AGENT_NAME 监控..." # 先创建日志文件 touch "${AGENT_NAME}_monitor.log" # 使用tee复制一份输出到日志文件,同时保持stdout输出到聊天窗口 nohup bash -c "./management/workflow/scripts/agent_monitor_fixed.sh '$AGENT_NAME' 2>&1 | tee -a '${AGENT_NAME}_monitor.log'" & # 检查是否启动成功 sleep 2 # 给进程一点启动时间 if ps aux | grep "agent_monitor_fixed.sh $AGENT_NAME" | grep -v grep | grep -q .; then PID=$(ps aux | grep "agent_monitor_fixed.sh $AGENT_NAME" | grep -v grep | awk '{print $2}') echo "✅ $AGENT_NAME 监控启动成功" echo "🆔 PID: $PID" echo "📝 日志: ${AGENT_NAME}_monitor.log" else echo "❌ $AGENT_NAME 监控启动失败" fi