Files
AIRegulation-DocAnalysis/start_api_background.sh

68 lines
1.5 KiB
Bash
Raw Normal View History

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