#!/usr/bin/env bash # agent/qa/scripts/stop.sh —— 停止 QA 服务(停而不删,保留日志/pid 供回滚诊断) set -euo pipefail AGENT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PORT="${1:-8091}" PID_FILE="$AGENT_ROOT/run/qa-$PORT.pid" if [[ -f "$PID_FILE" ]]; then PID="$(cat "$PID_FILE")" if kill -0 "$PID" 2>/dev/null; then kill "$PID" for _ in $(seq 1 15); do kill -0 "$PID" 2>/dev/null || break; sleep 1; done kill -0 "$PID" 2>/dev/null && kill -9 "$PID" 2>/dev/null || true fi rm -f "$PID_FILE" echo "QA STOPPED (was pid=$PID, port=$PORT)" else echo "QA 未在运行(无 pid 文件, port=$PORT)" fi