完成Gunicorn启动服务器的指南文档和快速启动停止脚本
This commit is contained in:
0
scripts/deploy.sh
Normal file → Executable file
0
scripts/deploy.sh
Normal file → Executable file
39
scripts/restart_gunicorn.sh
Executable file
39
scripts/restart_gunicorn.sh
Executable file
@@ -0,0 +1,39 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "🔄 重启Gunicorn服务..."
|
||||
echo "=========================================="
|
||||
|
||||
# 进入项目目录
|
||||
cd /home/renjianbo/aitsc
|
||||
|
||||
# 停止服务
|
||||
echo "🛑 停止现有服务..."
|
||||
if [ -f "logs/gunicorn.pid" ]; then
|
||||
PID=$(cat logs/gunicorn.pid)
|
||||
if ps -p $PID > /dev/null; then
|
||||
kill -TERM $PID
|
||||
sleep 3
|
||||
fi
|
||||
fi
|
||||
|
||||
# 激活conda环境
|
||||
echo "🔧 激活环境..."
|
||||
eval "$(/home/renjianbo/miniconda3/bin/conda shell.bash hook)"
|
||||
conda activate myenv
|
||||
|
||||
# 设置环境变量
|
||||
export FLASK_ENV=production
|
||||
export SECRET_KEY="your-production-secret-key-must-be-very-secure"
|
||||
export LLM_API_KEY="sk-your-production-api-key"
|
||||
|
||||
# 创建必要目录
|
||||
mkdir -p logs uploads
|
||||
|
||||
echo "✅ 环境已激活: Python $(python --version)"
|
||||
echo "🌐 服务端口: 5002"
|
||||
echo "🔗 访问地址: http://101.43.95.130:5002"
|
||||
echo "=========================================="
|
||||
|
||||
# 启动服务
|
||||
echo "🚀 启动新服务..."
|
||||
gunicorn -c gunicorn.conf.py run_dev:app
|
||||
27
scripts/start_gunicorn.sh
Executable file
27
scripts/start_gunicorn.sh
Executable file
@@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "🚀 启动Gunicorn服务..."
|
||||
echo "=========================================="
|
||||
|
||||
# 进入项目目录
|
||||
cd /home/renjianbo/aitsc
|
||||
|
||||
# 激活conda环境
|
||||
eval "$(/home/renjianbo/miniconda3/bin/conda shell.bash hook)"
|
||||
conda activate myenv
|
||||
|
||||
# 设置环境变量
|
||||
export FLASK_ENV=production
|
||||
export SECRET_KEY="your-production-secret-key-must-be-very-secure"
|
||||
export LLM_API_KEY="sk-your-production-api-key"
|
||||
|
||||
# 创建必要目录
|
||||
mkdir -p logs uploads
|
||||
|
||||
echo "✅ 环境已激活: Python $(python --version)"
|
||||
echo "🌐 服务端口: 5002"
|
||||
echo "🔗 访问地址: http://101.43.95.130:5002"
|
||||
echo "=========================================="
|
||||
|
||||
# 启动Gunicorn服务
|
||||
gunicorn -c gunicorn.conf.py run_dev:app
|
||||
80
scripts/status_gunicorn.sh
Executable file
80
scripts/status_gunicorn.sh
Executable file
@@ -0,0 +1,80 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "📊 Gunicorn服务状态检查"
|
||||
echo "=========================================="
|
||||
|
||||
# 进入项目目录
|
||||
cd /home/renjianbo/aitsc
|
||||
|
||||
# 检查进程状态
|
||||
echo "🔍 检查进程状态..."
|
||||
PROCESSES=$(ps aux | grep gunicorn | grep -v grep)
|
||||
if [ -n "$PROCESSES" ]; then
|
||||
echo "✅ Gunicorn进程正在运行:"
|
||||
echo "$PROCESSES"
|
||||
else
|
||||
echo "❌ 未找到运行中的Gunicorn进程"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
|
||||
# 检查端口监听
|
||||
echo "🔍 检查端口监听状态..."
|
||||
PORT_STATUS=$(ss -tlnp | grep :5002)
|
||||
if [ -n "$PORT_STATUS" ]; then
|
||||
echo "✅ 端口5002正在监听:"
|
||||
echo "$PORT_STATUS"
|
||||
else
|
||||
echo "❌ 端口5002未在监听"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
|
||||
# 检查PID文件
|
||||
echo "🔍 检查PID文件..."
|
||||
if [ -f "logs/gunicorn.pid" ]; then
|
||||
PID=$(cat logs/gunicorn.pid)
|
||||
echo "📋 PID文件存在: $PID"
|
||||
if ps -p $PID > /dev/null; then
|
||||
echo "✅ PID对应的进程正在运行"
|
||||
else
|
||||
echo "⚠️ PID对应的进程不存在"
|
||||
fi
|
||||
else
|
||||
echo "⚠️ PID文件不存在"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
|
||||
# 检查日志文件
|
||||
echo "🔍 检查日志文件..."
|
||||
if [ -f "logs/gunicorn_access.log" ]; then
|
||||
echo "✅ 访问日志文件存在"
|
||||
echo "📄 最后10行访问日志:"
|
||||
tail -10 logs/gunicorn_access.log
|
||||
else
|
||||
echo "⚠️ 访问日志文件不存在"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
|
||||
if [ -f "logs/gunicorn_error.log" ]; then
|
||||
echo "✅ 错误日志文件存在"
|
||||
echo "📄 最后10行错误日志:"
|
||||
tail -10 logs/gunicorn_error.log
|
||||
else
|
||||
echo "⚠️ 错误日志文件不存在"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
|
||||
# 测试服务响应
|
||||
echo "🔍 测试服务响应..."
|
||||
RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:5002/ 2>/dev/null)
|
||||
if [ "$RESPONSE" = "200" ]; then
|
||||
echo "✅ 服务响应正常 (HTTP $RESPONSE)"
|
||||
else
|
||||
echo "❌ 服务响应异常 (HTTP $RESPONSE)"
|
||||
fi
|
||||
|
||||
echo "=========================================="
|
||||
48
scripts/stop_gunicorn.sh
Executable file
48
scripts/stop_gunicorn.sh
Executable file
@@ -0,0 +1,48 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "🛑 停止Gunicorn服务..."
|
||||
echo "=========================================="
|
||||
|
||||
# 进入项目目录
|
||||
cd /home/renjianbo/aitsc
|
||||
|
||||
# 检查PID文件是否存在
|
||||
if [ -f "logs/gunicorn.pid" ]; then
|
||||
PID=$(cat logs/gunicorn.pid)
|
||||
echo "📋 找到Gunicorn进程PID: $PID"
|
||||
|
||||
# 检查进程是否存在
|
||||
if ps -p $PID > /dev/null; then
|
||||
echo "🔄 正在停止进程..."
|
||||
kill -TERM $PID
|
||||
|
||||
# 等待进程停止
|
||||
sleep 3
|
||||
|
||||
# 检查是否成功停止
|
||||
if ps -p $PID > /dev/null; then
|
||||
echo "⚠️ 进程仍在运行,强制停止..."
|
||||
kill -9 $PID
|
||||
fi
|
||||
|
||||
echo "✅ Gunicorn服务已停止"
|
||||
else
|
||||
echo "⚠️ 进程不存在,可能已经停止"
|
||||
fi
|
||||
else
|
||||
echo "⚠️ 未找到PID文件,尝试查找进程..."
|
||||
|
||||
# 查找Gunicorn进程
|
||||
PIDS=$(ps aux | grep gunicorn | grep -v grep | awk '{print $2}')
|
||||
|
||||
if [ -n "$PIDS" ]; then
|
||||
echo "📋 找到Gunicorn进程: $PIDS"
|
||||
echo $PIDS | xargs kill -TERM
|
||||
sleep 3
|
||||
echo "✅ Gunicorn服务已停止"
|
||||
else
|
||||
echo "ℹ️ 未找到运行中的Gunicorn进程"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "=========================================="
|
||||
Reference in New Issue
Block a user