2026-04-28 11:29:33 +08:00
|
|
|
#!/bin/bash
|
2026-05-14 15:07:34 +08:00
|
|
|
# start_api_background.sh - 后台启动迁移后的 backend API 服务
|
2026-04-28 11:29:33 +08:00
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
|
|
VENV_DIR=".venv"
|
2026-05-14 15:07:34 +08:00
|
|
|
BACKEND_PATH="$PWD/backend"
|
2026-04-28 11:29:33 +08:00
|
|
|
|
|
|
|
|
mkdir -p logs
|
|
|
|
|
|
|
|
|
|
PID_FILE=logs/api.pid
|
|
|
|
|
LOG_FILE=logs/api.log
|
|
|
|
|
|
|
|
|
|
echo "========================================"
|
2026-05-14 15:07:34 +08:00
|
|
|
echo "后台启动 AI+合规智能中枢 API 服务"
|
2026-04-28 11:29:33 +08:00
|
|
|
echo "========================================"
|
|
|
|
|
echo ""
|
|
|
|
|
|
|
|
|
|
if [ ! -d "$VENV_DIR" ]; then
|
|
|
|
|
echo "错误: 虚拟环境不存在,请先运行 ./quick_start.sh"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [ -f "$PID_FILE" ]; then
|
2026-05-14 15:07:34 +08:00
|
|
|
PID=$(cat "$PID_FILE")
|
|
|
|
|
if ps -p "$PID" > /dev/null 2>&1; then
|
2026-04-28 11:29:33 +08:00
|
|
|
echo "服务已在运行 (PID: $PID)"
|
|
|
|
|
echo "如需重启,请先运行: ./stop_api.sh"
|
|
|
|
|
exit 1
|
|
|
|
|
else
|
2026-05-14 15:07:34 +08:00
|
|
|
rm -f "$PID_FILE"
|
2026-04-28 11:29:33 +08:00
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
HOST=${API_HOST:-0.0.0.0}
|
|
|
|
|
PORT=${API_PORT:-8000}
|
|
|
|
|
|
|
|
|
|
echo "服务地址: http://$HOST:$PORT"
|
|
|
|
|
echo "日志文件: $LOG_FILE"
|
|
|
|
|
echo ""
|
|
|
|
|
echo "正在后台启动..."
|
2026-05-14 15:07:34 +08:00
|
|
|
|
|
|
|
|
PYTHONPATH="$BACKEND_PATH${PYTHONPATH:+:$PYTHONPATH}" \
|
|
|
|
|
nohup "$VENV_DIR/bin/python" -m uvicorn app.main:app --host "$HOST" --port "$PORT" > "$LOG_FILE" 2>&1 &
|
2026-04-28 11:29:33 +08:00
|
|
|
PID=$!
|
|
|
|
|
|
2026-05-14 15:07:34 +08:00
|
|
|
echo "$PID" > "$PID_FILE"
|
2026-04-28 11:29:33 +08:00
|
|
|
|
|
|
|
|
sleep 3
|
|
|
|
|
|
2026-05-14 15:07:34 +08:00
|
|
|
if ps -p "$PID" > /dev/null 2>&1; then
|
2026-04-28 11:29:33 +08:00
|
|
|
echo "服务启动成功 (PID: $PID)"
|
|
|
|
|
echo ""
|
|
|
|
|
echo "API地址: http://$HOST:$PORT"
|
|
|
|
|
echo "API文档: http://$HOST:$PORT/docs"
|
|
|
|
|
echo "健康检查: http://$HOST:$PORT/health"
|
|
|
|
|
echo ""
|
|
|
|
|
echo "查看日志:"
|
|
|
|
|
echo " tail -f $LOG_FILE"
|
|
|
|
|
echo ""
|
|
|
|
|
echo "停止服务:"
|
|
|
|
|
echo " ./stop_api.sh"
|
|
|
|
|
else
|
|
|
|
|
echo "服务启动失败,请查看日志: $LOG_FILE"
|
2026-05-14 15:07:34 +08:00
|
|
|
rm -f "$PID_FILE"
|
2026-04-28 11:29:33 +08:00
|
|
|
exit 1
|
2026-05-14 15:07:34 +08:00
|
|
|
fi
|