Update deploy script
This commit is contained in:
parent
4f8048bd8d
commit
fc4b891c5f
112
deploy.sh
112
deploy.sh
|
|
@ -1,50 +1,100 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# LLM性能测试工具部署脚本
|
# LLM Performance Test Tool 部署脚本
|
||||||
# 部署到 8001 端口
|
# 部署到 8001 端口
|
||||||
|
|
||||||
set -e
|
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
|
if ! command -v python3 &> /dev/null; then
|
||||||
echo "错误: 未找到 Python3,请先安装 Python3.8+"
|
echo "错误: 未找到 Python3"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
PYTHON_VERSION=$(python3 --version | cut -d' ' -f2 | cut -d'.' -f1,2)
|
PYTHON_VERSION=$(python3 --version 2>&1 | awk '{print $2}')
|
||||||
echo "Python 版本: $PYTHON_VERSION"
|
echo "Python 版本: $PYTHON_VERSION"
|
||||||
|
|
||||||
# 创建虚拟环境
|
# 创建应用目录
|
||||||
if [ ! -d "venv" ]; then
|
echo "创建应用目录: $APP_DIR"
|
||||||
echo "创建虚拟环境..."
|
sudo mkdir -p $APP_DIR
|
||||||
python3 -m venv venv
|
sudo chown $USER:$USER $APP_DIR
|
||||||
fi
|
|
||||||
|
|
||||||
# 激活虚拟环境
|
# 复制文件
|
||||||
echo "激活虚拟环境..."
|
echo "复制应用文件..."
|
||||||
source venv/bin/activate
|
cp -r ./* $APP_DIR/
|
||||||
|
|
||||||
# 升级pip
|
|
||||||
echo "升级pip..."
|
|
||||||
pip install --upgrade pip
|
|
||||||
|
|
||||||
# 安装依赖
|
# 安装依赖
|
||||||
echo "安装依赖..."
|
echo "安装 Python 依赖..."
|
||||||
pip install -r requirements.txt
|
cd $APP_DIR
|
||||||
|
|
||||||
# 检查端口是否被占用
|
# 根据 Python 版本安装不同版本的依赖
|
||||||
if lsof -Pi :8001 -sTCP:LISTEN -t >/dev/null 2>&1; then
|
PY_MAJOR=$(python3 -c "import sys; print(sys.version_info.major)")
|
||||||
echo "警告: 端口8001已被占用,尝试停止现有进程..."
|
PY_MINOR=$(python3 -c "import sys; print(sys.version_info.minor)")
|
||||||
kill $(lsof -t -i:8001) 2>/dev/null || true
|
|
||||||
sleep 2
|
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
|
fi
|
||||||
|
|
||||||
# 启动应用
|
# 创建数据目录
|
||||||
echo "启动LLM性能测试工具 (端口: 8001)..."
|
mkdir -p $APP_DIR/data
|
||||||
echo "访问地址: http://localhost:8001"
|
|
||||||
echo ""
|
|
||||||
echo "按 Ctrl+C 停止服务"
|
|
||||||
echo "==================================="
|
|
||||||
|
|
||||||
python app.py
|
# 创建 systemd 服务文件
|
||||||
|
echo "创建系统服务..."
|
||||||
|
sudo tee /etc/systemd/system/$APP_NAME.service > /dev/null <<EOF
|
||||||
|
[Unit]
|
||||||
|
Description=LLM Performance Test Tool
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
User=$USER
|
||||||
|
WorkingDirectory=$APP_DIR
|
||||||
|
Environment=PYTHONPATH=$APP_DIR
|
||||||
|
ExecStart=/usr/bin/python3 $APP_DIR/app.py
|
||||||
|
Restart=always
|
||||||
|
RestartSec=5
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# 重新加载 systemd
|
||||||
|
sudo systemctl daemon-reload
|
||||||
|
|
||||||
|
# 停止旧服务(如果存在)
|
||||||
|
sudo systemctl stop $APP_NAME 2>/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
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue