killserver.sh 1001 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #!/usr/bin/env bash
  2. set -euo pipefail
  3. PORT="${PORT:-8550}"
  4. ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  5. cd "$ROOT_DIR"
  6. echo "Killing atlas2-mcp listeners on port ${PORT} (stray uvicorn processes)..."
  7. if command -v ss >/dev/null 2>&1; then
  8. # Get PIDs listening on the TCP port.
  9. PIDS=$(ss -ltnp 2>/dev/null | awk -v port=":${PORT}" '$4 ~ port {print $NF}' | sed -E 's/users:\(\("([^,]+)".*pid=([0-9]+).*/\2/' | tr -d '"' || true)
  10. elif command -v lsof >/dev/null 2>&1; then
  11. PIDS=$(lsof -t -iTCP:"${PORT}" -sTCP:LISTEN 2>/dev/null || true)
  12. else
  13. echo "Neither 'ss' nor 'lsof' found; cannot auto-kill by port." >&2
  14. exit 1
  15. fi
  16. if [[ -z "${PIDS:-}" ]]; then
  17. echo "No listeners found on port ${PORT}."
  18. exit 0
  19. fi
  20. # Kill unique PIDs.
  21. echo "Found PIDs: ${PIDS}"
  22. PIDS_UNIQ=$(echo "$PIDS" | tr ' ' '\n' | awk 'NF' | sort -u)
  23. for pid in $PIDS_UNIQ; do
  24. if [[ "$pid" =~ ^[0-9]+$ ]]; then
  25. echo "Killing PID ${pid}..."
  26. kill -9 "$pid" 2>/dev/null || true
  27. fi
  28. done
  29. echo "Done."