|
|
@@ -0,0 +1,40 @@
|
|
|
+#!/usr/bin/env bash
|
|
|
+# 在 Docker 容器内后台启动 pdf_converter_v2 API 服务,并写日志
|
|
|
+# 使用:在 Clerk2.5 或 pdf_converter_v2 下执行 bash pdf_converter_v2/scripts/start_api_in_container.sh
|
|
|
+# 工作目录:脚本会自动进入 pdf_converter_v2 所在目录
|
|
|
+# 日志:默认 $CLERK_ROOT/logs/pdf-converter-v2-api.log,可通过 PDF_CONVERTER_API_LOG 覆盖
|
|
|
+# 端口:默认 4214,可通过 PDF_CONVERTER_API_PORT 覆盖
|
|
|
+
|
|
|
+set -e
|
|
|
+SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
+PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
|
+CLERK_ROOT="${CLERK_ROOT:-$(cd "$PROJECT_ROOT/.." 2>/dev/null && pwd || echo "$PROJECT_ROOT")}"
|
|
|
+PORT="${PDF_CONVERTER_API_PORT:-4214}"
|
|
|
+LOG_DIR="${CLERK_ROOT}/logs"
|
|
|
+LOG_FILE="${PDF_CONVERTER_API_LOG:-${LOG_DIR}/pdf-converter-v2-api.log}"
|
|
|
+PID_FILE="${LOG_DIR}/pdf-converter-v2-api.pid"
|
|
|
+
|
|
|
+# NPU 容器内:PaddleOCR 走 NPU,MinerU 用 pipeline
|
|
|
+export PADDLE_OCR_DEVICE="${PADDLE_OCR_DEVICE:-npu:0}"
|
|
|
+export BACKEND="${BACKEND:-pipeline}"
|
|
|
+export API_URL="${API_URL:-http://127.0.0.1:5282}"
|
|
|
+
|
|
|
+mkdir -p "$LOG_DIR"
|
|
|
+cd "$PROJECT_ROOT"
|
|
|
+
|
|
|
+# 若已有 PID 文件且进程存在,先提示
|
|
|
+if [ -f "$PID_FILE" ]; then
|
|
|
+ OLD_PID=$(cat "$PID_FILE")
|
|
|
+ if kill -0 "$OLD_PID" 2>/dev/null; then
|
|
|
+ echo "已有进程在运行 PID=$OLD_PID,日志: $LOG_FILE" >&2
|
|
|
+ exit 1
|
|
|
+ fi
|
|
|
+ rm -f "$PID_FILE"
|
|
|
+fi
|
|
|
+
|
|
|
+nohup python3 api_server.py --host 0.0.0.0 --port "$PORT" >> "$LOG_FILE" 2>&1 &
|
|
|
+echo $! > "$PID_FILE"
|
|
|
+echo "已后台启动 pdf_converter_v2 API,端口 $PORT"
|
|
|
+echo " PID: $(cat $PID_FILE)"
|
|
|
+echo " 日志: $LOG_FILE"
|
|
|
+echo " 查看: tail -f $LOG_FILE"
|