diff --git a/management/workflow/scripts/agent_auto_start.sh b/management/workflow/scripts/agent_auto_start.sh index e022829a3..4a0f37138 100755 --- a/management/workflow/scripts/agent_auto_start.sh +++ b/management/workflow/scripts/agent_auto_start.sh @@ -11,27 +11,28 @@ if [ -z "$AGENT_NAME" ]; then fi # 项目目录:自动检测脚本所在位置,不需要硬编码 +# scripts -> workflow -> management -> 项目根目录(向上跳3级) SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -PROJECT_ROOT="$(dirname "$(dirname "$SCRIPT_DIR")")/../../.." +PROJECT_ROOT="$(dirname "$(dirname "$(dirname "$SCRIPT_DIR")")")" cd "$PROJECT_ROOT" || { echo "❌ 无法进入项目目录: $PROJECT_ROOT" exit 1 } # 检查是否已经运行 -if ps aux | grep "agent_monitor_gitpull.sh $AGENT_NAME" | grep -v grep | grep -q .; then +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 pull + 任务发现 + 自动推送) echo "🚀 启动 $AGENT_NAME 监控..." -nohup ./management/workflow/scripts/agent_monitor_gitpull.sh "$AGENT_NAME" > "${AGENT_NAME}_monitor.log" 2>&1 & +nohup ./management/workflow/scripts/agent_monitor_fixed.sh "$AGENT_NAME" > "${AGENT_NAME}_monitor.log" 2>&1 & # 检查是否启动成功 -sleep 1 -if ps aux | grep -q "agent_monitor_gitpull.sh $AGENT_NAME" | grep -v grep; then - PID=$(ps aux | grep "agent_monitor_gitpull.sh $AGENT_NAME" | grep -v grep | awk '{print $2}') +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" diff --git a/management/workflow/scripts/agent_monitor_fixed.sh b/management/workflow/scripts/agent_monitor_fixed.sh index 1e107f9a3..9c6b26c3d 100755 --- a/management/workflow/scripts/agent_monitor_fixed.sh +++ b/management/workflow/scripts/agent_monitor_fixed.sh @@ -11,8 +11,9 @@ if [ -z "$AGENT" ]; then fi # 自动检测项目根目录 +# scripts -> workflow -> management -> 项目根目录(向上跳3级) SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -PROJECT_ROOT="$(dirname "$(dirname "$SCRIPT_DIR")")/../.." +PROJECT_ROOT="$(dirname "$(dirname "$(dirname "$SCRIPT_DIR")")")" cd "$PROJECT_ROOT" || { echo "❌ 错误:无法进入项目目录 $PROJECT_ROOT" exit 1 diff --git a/management/workflow/scripts/agent_monitor_gitpull.sh b/management/workflow/scripts/agent_monitor_gitpull.sh index 42f44f1da..18a4e6faa 100755 --- a/management/workflow/scripts/agent_monitor_gitpull.sh +++ b/management/workflow/scripts/agent_monitor_gitpull.sh @@ -13,8 +13,9 @@ if [ -z "$AGENT_NAME" ]; then fi # 项目根目录(自动检测,基于脚本位置) +# scripts -> workflow -> management -> 项目根目录(向上跳3级) SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -PROJECT_ROOT="$(dirname "$(dirname "$SCRIPT_DIR")")/../.." +PROJECT_ROOT="$(dirname "$(dirname "$(dirname "$SCRIPT_DIR")")")" cd "$PROJECT_ROOT" || { echo "❌ 错误:无法进入项目目录 $PROJECT_ROOT" exit 1