#!/bin/bash # 服务管理脚本 APP_NAME="lq_agent_platform_server" # 自定义服务名称 PID_FILE="./gunicorn_log/gunicorn.pid" # PID 文件路径 LOG_FILE="./gunicorn_log/gunicorn.log" # 日志文件路径 #START_COMMAND="gunicorn -c gunicorn_config.py server.app:app" START_COMMAND="python server/app.py --host 0.0.0.0 --port 8001" case "$1" in start) if [ -f "$PID_FILE" ]; then if kill -0 $(cat "$PID_FILE") >/dev/null 2>&1; then echo "✅ $APP_NAME 已在运行 (PID: $(cat $PID_FILE))" exit 1 else rm -f "$PID_FILE" fi fi echo "🚀 启动 $APP_NAME..." nohup $START_COMMAND >> "$LOG_FILE" 2>&1 & echo $! > "$PID_FILE" echo "🟢 启动成功! PID: $(cat $PID_FILE)" echo "📝 日志输出: $LOG_FILE" ;; stop) if [ ! -f "$PID_FILE" ]; then echo "🔴 $APP_NAME 未运行" exit 1 fi PID=$(cat "$PID_FILE") echo "🛑 停止 $APP_NAME (PID: $PID)..." kill -TERM $PID rm -f "$PID_FILE" echo "⭕ 已停止" ;; restart) $0 stop sleep 2 $0 start ;; status) if [ -f "$PID_FILE" ]; then if kill -0 $(cat "$PID_FILE") >/dev/null 2>&1; then echo "🟢 $APP_NAME 正在运行 (PID: $(cat $PID_FILE))" else echo "❌ PID 文件存在但进程未运行" rm -f "$PID_FILE" fi else echo "🔴 $APP_NAME 未运行" fi ;; *) echo "使用方法: $0 {start|stop|restart|status}" exit 1 esac exit 0