#!/bin/bash # 通风Agent 重启脚本:有进程则停止再启动,无进程直接启动 # ==================== 请根据实际环境修改下面配置 ==================== # Conda 根目录 CONDA_PATH="/data/conda/conda3" # 程序文件 PY_FILE="main.py" # Conda 环境名 CONDA_ENV="vent_agent" # 日志文件 LOG_FILE="./vent_agent.log" # PID 记录文件 PID_FILE="./vent_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 "=========================================================="