-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathstart-backend.sh
More file actions
executable file
·63 lines (53 loc) · 1.79 KB
/
start-backend.sh
File metadata and controls
executable file
·63 lines (53 loc) · 1.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/bin/bash
# DeepV-Ki Backend 启动脚本
# 用法: ./start-backend.sh [前台|后台]
# 默认: 前台运行
set -e
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$PROJECT_DIR"
# 激活虚拟环境
if [ ! -d "venv" ]; then
echo "❌ 虚拟环境不存在,请先运行: uv venv --python 3.11 venv"
exit 1
fi
echo "🔧 激活虚拟环境..."
source venv/bin/activate
# 验证依赖
echo "✅ 检查依赖..."
python -c "import fastapi; import uvicorn; print('✅ 核心依赖已安装')"
# 清理占用的端口(如果需要)
PORT=${PORT:-8001}
echo "🔍 检查端口 $PORT..."
if command -v lsof &> /dev/null; then
if lsof -i ":$PORT" &> /dev/null; then
echo "⚠️ 端口 $PORT 已被占用,清理进程..."
lsof -i ":$PORT" | grep -v COMMAND | awk '{print $2}' | xargs kill -9 2>/dev/null || true
sleep 1
fi
fi
# 运行模式
RUN_MODE=${1:-前台}
if [ "$RUN_MODE" = "后台" ]; then
echo "🚀 在后台启动后端服务 (端口: $PORT)..."
python -m api.main > api/logs/backend.log 2>&1 &
BACKEND_PID=$!
echo "✅ 后端进程已启动 (PID: $BACKEND_PID)"
echo "📝 日志文件: api/logs/backend.log"
echo ""
echo "💡 提示: 停止服务运行: kill $BACKEND_PID"
sleep 3
# 验证服务是否运行
if curl -s http://localhost:$PORT/health > /dev/null 2>&1; then
echo "✅ 服务健康检查通过"
echo "🌐 API 地址: http://localhost:$PORT"
echo "📚 API 文档: http://localhost:$PORT/docs"
else
echo "❌ 服务健康检查失败,请检查日志: tail -f api/logs/backend.log"
exit 1
fi
else
echo "🚀 在前台启动后端服务 (端口: $PORT)..."
echo "💡 提示: 按 CTRL+C 停止服务"
echo ""
python -m api.main
fi