diff --git a/.gitea/workflows/vps-deploy.yml b/.gitea/workflows/vps-deploy.yml index bfdb734..2d1e89a 100644 --- a/.gitea/workflows/vps-deploy.yml +++ b/.gitea/workflows/vps-deploy.yml @@ -70,7 +70,9 @@ jobs: # 2026-08-16 实录: /end 杀不掉 uvicorn reload 孤儿子进程, 旧进程跨两轮 # 部署占 8000, 新实例静默抢不到端口, /docs 200 验的还是旧代码 → 500 旧 bug 重现 ssh 49.232.102.198 'schtasks /end /tn sanguo-api' || true - ZPID=$(ssh 49.232.102.198 'netstat -ano -p tcp' | tr -d '\r' | grep ':8000' | grep -i LISTENING | awk '{print $NF}' | sort -u | head -1) + # 注意 || true 兜底: 端口已空时 grep 无匹配, set -e -o pipefail 会把整步炸掉 + # (2026-08-16 run674 实录: /end 干净杀掉后 180ms 死在这行, API 停在半路) + ZPID=$(ssh 49.232.102.198 'netstat -ano -p tcp' | tr -d '\r' | grep ':8000' | grep -i LISTENING | awk '{print $NF}' | sort -u | head -1 || true) if [ -n "$ZPID" ]; then echo "僵尸 API 进程 PID=$ZPID 仍占 8000, 强杀" ssh 49.232.102.198 "taskkill /F /T /PID $ZPID" || true