#!/bin/bash
# 通风Agent 重启脚本：有进程则停止再启动，无进程直接启动

# ==================== 请根据实际环境修改下面配置 ====================
# Conda 根目录
CONDA_PATH="/data/conda/conda3"
# 程序文件
PY_FILE="main.py"
# Conda 环境名
CONDA_ENV="vent_deep_agent"
# 日志文件
LOG_FILE="./vent_deep_agent.log"
# PID 记录文件
PID_FILE="./vent_deep_agent.pid"
# =====================================================================

# 加载 conda
source ${CONDA_PATH}/etc/profile.d/conda.sh
# 激活环境
conda activate ${CONDA_ENV}

echo "==================== 开始执行重启操作 ===================="

# 1. 检查旧进程并停止
if [ -f "${PID_FILE}" ]; then
    OLD_PID=$(cat "${PID_FILE}")
    # 判断进程是否在运行
    if ps -p "${OLD_PID}" > /dev/null 2>&1; then
        echo "发现运行中的进程 PID: ${OLD_PID}，正在停止..."
        kill -15 "${OLD_PID}"
        sleep 1
        # 二次确认，强制杀死残留
        if ps -p "${OLD_PID}" > /dev/null 2>&1; then
            echo "进程未正常退出，强制终止 PID: ${OLD_PID}"
            kill -9 "${OLD_PID}"
        fi
    fi
    # 删除旧 PID 文件
    rm -f "${PID_FILE}"
    echo "旧进程已清理完成"
else
    echo "未检测到旧进程，直接启动新进程"
fi

# 2. 后台启动新程序
echo "正在后台启动 ${PY_FILE}，日志输出至 ${LOG_FILE}"
nohup python3 ${PY_FILE} >> ${LOG_FILE} 2>&1 &

# 获取新 PID 并写入文件
NEW_PID=$!
echo "${NEW_PID}" > "${PID_FILE}"
echo "启动成功！新进程 PID: ${NEW_PID}"
echo "=========================================================="
