#!/bin/bash

# 激活虚拟环境
VENV_PATH="/mnt/nfs/.venv"
if [ -d "$VENV_PATH" ]; then
    source "$VENV_PATH/bin/activate"
else
    echo "虚拟环境路径不存在：$VENV_PATH"
    exit 1
fi

# 定义 uWSGI 的启动配置文件路径
INI_FILE="/opt/1panel/docker/compose/4an/app/uwsgi.ini"

# 定义 uWSGI 的 PID 文件路径
PID_FILE="/opt/1panel/docker/compose/4an/uwsgi.pid"

# 定义日志文件路径
LOG_FILE="/opt/1panel/docker/compose/4an/uwsgi.log"

# 检查配置文件是否存在
if [ ! -f "$INI_FILE" ]; then
    echo "uWSGI 配置文件不存在：$INI_FILE"
    exit 1
fi

# 检查 PID 文件是否存在
if [ -f "$PID_FILE" ]; then
    echo "停止 uWSGI 服务..."
    uwsgi --stop "$PID_FILE"
    if [ $? -eq 0 ]; then
        echo "uWSGI 服务已成功停止。"
    else
        echo "停止 uWSGI 服务失败，请检查 PID 文件：$PID_FILE"
        exit 1
    fi
else
    echo "PID 文件不存在，跳过停止服务步骤。"
fi

# 等待 2 秒，确保服务已完全停止
sleep 2

# 启动 uWSGI 服务
echo "启动 uWSGI 服务..."
uwsgi --ini "$INI_FILE" --pidfile "$PID_FILE" --logto "$LOG_FILE"
if [ $? -eq 0 ]; then
    echo "uWSGI 服务已成功启动。"
else
    echo "uWSGI 服务启动失败，请检查日志：$LOG_FILE"
    exit 1
fi

# 检查 PID 文件是否重新生成
if [ -f "$PID_FILE" ]; then
    echo "uWSGI 服务已成功重启。"
else
    echo "uWSGI 服务启动失败，PID 文件未生成。"
    exit 1
fi
