#!/usr/bin/env bash # 明缘进阶场 FastAPI 启动脚本 (CentOS7, 固定路径) cd /home/clock_server || exit 1 PID_FILE=/home/clock_server/logs/prd/server.pid LOG_DIR=/home/clock_server/logs OUT_LOG=/home/clock_server/logs/prd/server.out.log ERR_LOG=/home/clock_server/logs/prd/server.err.log mkdir -p "$LOG_DIR" if [ -f "$PID_FILE" ]; then OLD_PID="$(cat "$PID_FILE" 2>/dev/null || true)" if [ -n "$OLD_PID" ] && kill -0 "$OLD_PID" 2>/dev/null; then echo "服务已在运行 (PID $OLD_PID)" exit 1 fi fi # 清理 Python 字节码缓存,确保加载最新代码 echo "清理 __pycache__..." find /home/clock_server/server_prd -type d -name "__pycache__" -exec rm -rf {} + 2>/dev/null find /home/clock_server/server_prd -type f -name "*.pyc" -delete 2>/dev/null echo "清理完成" nohup /home/clock_server/pyenv39/bin/python -m uvicorn server_prd.main:app --host 0.0.0.0 --port 8001 >"$OUT_LOG" 2>"$ERR_LOG" & echo $! > "$PID_FILE" sleep 1 if kill -0 "$(cat "$PID_FILE")" 2>/dev/null; then echo "启动成功 PID $(cat "$PID_FILE") (http://0.0.0.0:8001)" echo "日志: $OUT_LOG" echo "错误: $ERR_LOG" else echo "启动失败,请查看: $ERR_LOG" >&2 exit 1 fi