fix(ci): 僵尸端口守卫ZPID提取行加||true兜底——run674实录:/end干净杀掉后端口已空,grep无匹配+set -e -o pipefail把整步炸在提取行,死在schtasks /run前→API停在半路(已手动/run救回);守卫逻辑不变,仅容忍空结果 [nas]
CI/CD / test (push) Successful in 12s
CI/CD / nas-deploy (push) Successful in 26s
CI/CD / nas-verify (push) Successful in 11s

This commit is contained in:
2026-08-16 19:21:42 +08:00
parent d8d646fcd5
commit 0d95de2fc2
+3 -1
View File
@@ -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