Files
PlantAI-rag-new/agent/qa/scripts/start.sh
T
jerryandClaude Fable 5 a990a00eb5 端口终态修订:BFF 8090 / QA 8091 / Methodology 8092 / legacy 8093
- config.py 默认值改终态(浸泡期 .env 覆盖 7921/8001/7911 继续生效)
- extraction _DEFAULT_ALT=8093;三个 start.sh 默认端口改终态
- 运行中服务零触碰:浸泡端口不变,BFF 未重启,旧服务不动
- 验证:sdk pytest 125 绿,BFF 五上游仍绿(env 覆盖优先)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-31 16:41:37 +08:00

43 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
# agent/qa/scripts/start.sh —— QA V1.1.73 服务唯一启动接口
# 用法:bash scripts/start.sh [port] (默认 8091 终态;浸泡期影子用 7921)
set -euo pipefail
AGENT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
PORT="${1:-8091}" # 终态端口(浸泡期显式传 7921)
ENV_FILE="${QA_ENV_FILE:-$AGENT_ROOT/env/prod.env}"
LOG_FILE="${QA_LOG_FILE:-/tmp/plantai-agent-qa-$PORT.log}"
PID_FILE="$AGENT_ROOT/run/qa-$PORT.pid"
PYTHON="${QA_PYTHON:-/home/xzq/miniconda3/envs/gfpy312/bin/python}"
mkdir -p "$AGENT_ROOT/run"
[[ -x "$PYTHON" ]] || { echo "QA Python 不可执行: $PYTHON" >&2; exit 1; }
[[ -f "$ENV_FILE" ]] || { echo "缺少 env 文件: $ENV_FILE" >&2; exit 1; }
if [[ -f "$PID_FILE" ]] && kill -0 "$(cat "$PID_FILE")" 2>/dev/null; then
echo "QA 已在运行 pid=$(cat "$PID_FILE")" >&2
exit 1
fi
set -a
# shellcheck disable=SC1090
. "$ENV_FILE"
set +a
cd "$AGENT_ROOT"
setsid "$PYTHON" -m uvicorn scripts.qa_v1_1_73_server:app \
--host 127.0.0.1 --port "$PORT" \
> "$LOG_FILE" 2>&1 < /dev/null &
echo $! > "$PID_FILE"
disown
for _ in $(seq 1 30); do
if curl -sf --max-time 3 "http://127.0.0.1:$PORT/health" >/dev/null 2>&1; then
echo "QA UP (127.0.0.1:$PORT, pid=$(cat "$PID_FILE"))"
exit 0
fi
sleep 2
done
echo "QA FAIL —— 日志尾部:" >&2
tail -30 "$LOG_FILE" >&2
exit 1