diff --git a/deploy.sh b/deploy.sh index a3de384..8ac9e06 100644 --- a/deploy.sh +++ b/deploy.sh @@ -1,50 +1,100 @@ #!/bin/bash -# LLM性能测试工具部署脚本 -# 部署到8001端口 +# LLM Performance Test Tool 部署脚本 +# 部署到 8001 端口 set -e -echo "=== LLM性能测试工具部署脚本 ===" +APP_NAME="llm_perf_test" +APP_DIR="/opt/llm_perf_test" +PORT=8001 +USER=$(whoami) -# 检查Python版本 +echo "=== LLM Performance Test Tool 部署脚本 ===" +echo "" + +# 检查 Python if ! command -v python3 &> /dev/null; then - echo "错误: 未找到 Python3,请先安装 Python3.8+" + echo "错误: 未找到 Python3" exit 1 fi -PYTHON_VERSION=$(python3 --version | cut -d' ' -f2 | cut -d'.' -f1,2) -echo "Python版本: $PYTHON_VERSION" +PYTHON_VERSION=$(python3 --version 2>&1 | awk '{print $2}') +echo "Python 版本: $PYTHON_VERSION" -# 创建虚拟环境 -if [ ! -d "venv" ]; then - echo "创建虚拟环境..." - python3 -m venv venv -fi +# 创建应用目录 +echo "创建应用目录: $APP_DIR" +sudo mkdir -p $APP_DIR +sudo chown $USER:$USER $APP_DIR -# 激活虚拟环境 -echo "激活虚拟环境..." -source venv/bin/activate - -# 升级pip -echo "升级pip..." -pip install --upgrade pip +# 复制文件 +echo "复制应用文件..." +cp -r ./* $APP_DIR/ # 安装依赖 -echo "安装依赖..." -pip install -r requirements.txt +echo "安装 Python 依赖..." +cd $APP_DIR -# 检查端口是否被占用 -if lsof -Pi :8001 -sTCP:LISTEN -t >/dev/null 2>&1; then - echo "警告: 端口8001已被占用,尝试停止现有进程..." - kill $(lsof -t -i:8001) 2>/dev/null || true - sleep 2 +# 根据 Python 版本安装不同版本的依赖 +PY_MAJOR=$(python3 -c "import sys; print(sys.version_info.major)") +PY_MINOR=$(python3 -c "import sys; print(sys.version_info.minor)") + +if [ "$PY_MAJOR" -eq 3 ] && [ "$PY_MINOR" -le 6 ]; then + echo "检测到 Python 3.6,安装兼容版本..." + pip3 install --user flask==1.1.4 requests==2.27.1 2>/dev/null || \ + pip3 install flask==1.1.4 requests==2.27.1 +else + pip3 install --user -r requirements.txt 2>/dev/null || \ + pip3 install -r requirements.txt fi -# 启动应用 -echo "启动LLM性能测试工具 (端口: 8001)..." -echo "访问地址: http://localhost:8001" -echo "" -echo "按 Ctrl+C 停止服务" -echo "===================================" +# 创建数据目录 +mkdir -p $APP_DIR/data -python app.py +# 创建 systemd 服务文件 +echo "创建系统服务..." +sudo tee /etc/systemd/system/$APP_NAME.service > /dev/null </dev/null || true + +# 启动服务 +echo "启动服务..." +sudo systemctl start $APP_NAME +sudo systemctl enable $APP_NAME + +# 检查状态 +sleep 2 +if sudo systemctl is-active --quiet $APP_NAME; then + echo "" + echo "=== 部署成功! ===" + echo "应用地址: http://$(hostname -I | awk '{print $1}'):$PORT" + echo "本地地址: http://localhost:$PORT" + echo "" + echo "查看日志: sudo journalctl -u $APP_NAME -f" + echo "停止服务: sudo systemctl stop $APP_NAME" + echo "重启服务: sudo systemctl restart $APP_NAME" +else + echo "" + echo "=== 部署失败 ===" + echo "请检查日志: sudo journalctl -u $APP_NAME -n 50" + exit 1 +fi