| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- #!/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 "=========================================================="
|