84 lines
1.9 KiB
Plaintext
84 lines
1.9 KiB
Plaintext
|
|
# /data/sh/start_tk_regio.sh
|
|||
|
|
|
|||
|
|
# crontab -e
|
|||
|
|
# 0 9 * * * /data/sh/start_tk_regio.sh
|
|||
|
|
|
|||
|
|
#!/bin/bash
|
|||
|
|
|
|||
|
|
# 定义变量
|
|||
|
|
APP_DIR="/data/webapps/test_tk_region"
|
|||
|
|
LOG_FILE="$APP_DIR/sh.log"
|
|||
|
|
PYTHON_SCRIPT="tk_region.py"
|
|||
|
|
MAX_ATTEMPTS=10
|
|||
|
|
WAIT_TIME=600 # 10分钟,单位为秒
|
|||
|
|
|
|||
|
|
# 记录日志函数
|
|||
|
|
log() {
|
|||
|
|
echo "[$(date +'%Y-%m-%d %H:%M:%S')] $1" >> "$LOG_FILE"
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 切换到应用目录
|
|||
|
|
log "==========="
|
|||
|
|
log "切换到应用目录: $APP_DIR"
|
|||
|
|
cd "$APP_DIR" || {
|
|||
|
|
log "无法切换到应用目录 $APP_DIR,脚本退出"
|
|||
|
|
exit 1
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 检查是否有旧进程在运行
|
|||
|
|
attempt=1
|
|||
|
|
while [ $attempt -le $MAX_ATTEMPTS ]; do
|
|||
|
|
# 查找正在运行的Python脚本进程
|
|||
|
|
log "第 $attempt 次检查是否有旧进程在运行..."
|
|||
|
|
pid=$(ps aux | grep "$PYTHON_SCRIPT" | grep -v grep | awk '{print $2}')
|
|||
|
|
|
|||
|
|
if [ -z "$pid" ]; then
|
|||
|
|
log "未发现运行中的 $PYTHON_SCRIPT 进程,准备启动新进程"
|
|||
|
|
break
|
|||
|
|
else
|
|||
|
|
log "发现运行中的进程,PID: $pid"
|
|||
|
|
if [ $attempt -eq $MAX_ATTEMPTS ]; then
|
|||
|
|
log "已达到最大等待次数 ($MAX_ATTEMPTS),仍有进程在运行,放弃启动"
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
log "等待 $((WAIT_TIME/60)) 分钟后再次检查..."
|
|||
|
|
sleep $WAIT_TIME
|
|||
|
|
attempt=$((attempt + 1))
|
|||
|
|
fi
|
|||
|
|
done
|
|||
|
|
|
|||
|
|
# 激活路径
|
|||
|
|
log "激活conda路径"
|
|||
|
|
source ~/.bashrc || {
|
|||
|
|
log "激活conda激活路径失败"
|
|||
|
|
exit 1
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 激活环境
|
|||
|
|
log "激活conda环境 py310"
|
|||
|
|
conda activate py310 || {
|
|||
|
|
log "激活conda环境失败"
|
|||
|
|
exit 1
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
log "激活虚拟环境"
|
|||
|
|
source venv/bin/activate || {
|
|||
|
|
log "激活虚拟环境失败"
|
|||
|
|
exit 1
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 安装依赖
|
|||
|
|
log "安装依赖包"
|
|||
|
|
pip install -r requirements.txt || {
|
|||
|
|
log "安装依赖包失败"
|
|||
|
|
exit 1
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 启动Python脚本
|
|||
|
|
log "启动 $PYTHON_SCRIPT 脚本"
|
|||
|
|
nohup python "$PYTHON_SCRIPT" > output.log 2>&1 &
|
|||
|
|
pid=$!
|
|||
|
|
log "$PYTHON_SCRIPT 已启动,PID: $pid"
|
|||
|
|
|
|||
|
|
log "脚本执行完成"
|