47 lines
1.7 KiB
Bash
Executable File
47 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
||
# Agent自动启动监控脚本 - 改进版:使用带自动git pull的监控脚本
|
||
# 当Agent启动时,自动启动监控脚本(带自动git pull)
|
||
|
||
AGENT_NAME="$1"
|
||
|
||
if [ -z "$AGENT_NAME" ]; then
|
||
echo "使用方法: ./agent_auto_start.sh <agent-name>"
|
||
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
|