Files
ai_wht_B/vicklystart_api.sh
“shengyudong” 5a384b694e 2026-1-6
2026-01-06 14:18:39 +08:00

97 lines
2.6 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# 配置参数
APP_DIR="/home/work/keyword_crawl"
VENV_PATH="$APP_DIR/venv"
# 使用绝对路径指定应用,或者使用相对路径
APP_NAME="flask_wht_server_api:app" # 原始方式
# 或者使用APP_NAME="flask_wht_server_api"
PORT="8216"
WORKERS="1" # 先使用1个worker调试
LOG_FILE="$APP_DIR/log10bjh_wht_server_api_$(date +%y%m%d%H%M).log"
PID_FILE="/tmp/gunicorn_wht_server_api.pid"
TIMEOUT=120
# 进入应用目录
cd "$APP_DIR" || {
echo "Failed to change directory to $APP_DIR"
exit 1
}
echo "当前目录: $(pwd)"
echo "目录内容:"
ls -la *.py
# 激活虚拟环境
if [ -f "$VENV_PATH/bin/activate" ]; then
source "$VENV_PATH/bin/activate"
echo "✓ Virtual environment activated"
echo "Python: $(which python)"
else
echo "Error: Virtual environment not found at $VENV_PATH"
exit 1
fi
# 添加当前目录到Python路径
export PYTHONPATH="$APP_DIR:$PYTHONPATH"
echo "PYTHONPATH: $PYTHONPATH"
echo "========================================"
echo "Deploying Flask Application"
echo "========================================"
echo "Application: $APP_NAME"
echo "Port: $PORT"
echo "Workers: $WORKERS"
echo "Log file: $LOG_FILE"
echo "Directory: $(pwd)"
echo "========================================"
# 检查应用文件
APP_FILE="flask_wht_server_api.py"
if [ ! -f "$APP_FILE" ]; then
echo "Error: $APP_FILE not found!"
echo "Files in directory:"
ls -la
exit 1
fi
# 简单测试Python是否能导入模块
echo "Testing Python import..."
python -c "
import sys
print('Python path:', sys.path)
try:
import flask_wht_server_api
print('✓ Successfully imported flask_wht_server_api')
except Exception as e:
print(f'✗ Import failed: {e}')
"
# (1) 停止现有进程
echo ""
echo "Stopping existing processes..."
pkill -f "gunicorn.*flask_wht_server_api" 2>/dev/null
pkill -f "python.*flask_wht_server_api" 2>/dev/null
sleep 2
# 清除PID文件
[ -f "$PID_FILE" ] && rm -f "$PID_FILE"
# (2) 启动新进程 - 使用不同的方式
echo ""
echo "Starting Gunicorn server..."
# 方法1使用绝对路径
# CMD="gunicorn -w $WORKERS -b 0.0.0.0:$PORT --pid $PID_FILE --timeout $TIMEOUT --chdir $APP_DIR $APP_NAME"
# 方法2使用点号表示法推荐
CMD="gunicorn -w $WORKERS -b 0.0.0.0:$PORT --pid $PID_FILE --timeout $TIMEOUT 'flask_wht_server_api:app'"
echo "Executing: $CMD"
# 直接运行(不后台运行,方便查看错误)
echo ""
echo "=== 直接运行(查看实时输出)==="
gunicorn -w $WORKERS -b 0.0.0.0:$PORT --pid $PID_FILE --timeout $TIMEOUT --access-logfile - --error-logfile - 'flask_wht_server_api:app'