#!/usr/bin/env bash set -euo pipefail source "$(dirname "$0")/lib.sh" stop_backend() { stop_pid_file "$BACKEND_PID" "后端" pkill -f "$ROOT/backend/.venv/bin/uvicorn app.main:app" 2>/dev/null || true pkill -f "uvicorn app.main:app --host 127.0.0.1 --port $BACKEND_PORT" 2>/dev/null || true if command -v fuser >/dev/null 2>&1; then fuser -k "${BACKEND_PORT}/tcp" 2>/dev/null || true fi } stop_frontend() { stop_pid_file "$FRONTEND_PID" "前端" pkill -f "$ROOT/frontend/node_modules/.bin/vite" 2>/dev/null || true } case "${1:-all}" in backend) stop_backend ;; frontend) stop_frontend ;; all) stop_frontend stop_backend ;; *) echo "用法: $0 [all|backend|frontend]" exit 1 ;; esac echo "完成"