#!/usr/bin/env bash # 作业 7 · 在 207 上启动故障自愈 FastAPI set -euo pipefail DIR="/opt/workbuddy/scripts_cursor/作业7_故障自愈工作流" PORT="${SELF_HEAL_PORT:-8780}" PIDFILE="/tmp/vllm_self_heal_api.pid" LOG="/tmp/vllm_self_heal_api.log" pip3 install fastapi uvicorn paramiko -q if [[ -f "$PIDFILE" ]] && kill -0 "$(cat "$PIDFILE")" 2>/dev/null; then if [[ "${FORCE_RESTART:-0}" == "1" ]]; then echo "restarting self_heal_api pid=$(cat "$PIDFILE")" kill "$(cat "$PIDFILE")" 2>/dev/null || true sleep 1 rm -f "$PIDFILE" else echo "self_heal_api already running pid=$(cat "$PIDFILE")" curl -sf "http://127.0.0.1:${PORT}/health" && echo exit 0 fi fi cd "$DIR" nohup python3 -m uvicorn 作业7_self_heal_api:app \ --host 0.0.0.0 --port "$PORT" >>"$LOG" 2>&1 & echo $! >"$PIDFILE" sleep 2 curl -sf "http://127.0.0.1:${PORT}/health" && echo echo "started on :${PORT}, log=$LOG"