killserver.sh 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #!/usr/bin/env bash
  2. set -euo pipefail
  3. PORT="${1:-8570}"
  4. echo "===================================================="
  5. echo "🧹 trader-mcp killserver.sh (port $PORT)"
  6. echo "===================================================="
  7. do_kill_pids() {
  8. local pids="$1"
  9. if [ -z "$pids" ]; then
  10. return 0
  11. fi
  12. echo "Killing PIDs:" "$pids"
  13. # shellcheck disable=SC2086
  14. kill -9 $pids >/dev/null 2>&1 || true
  15. }
  16. # 1) lsof (precise)
  17. if command -v lsof >/dev/null 2>&1; then
  18. PIDS=$(lsof -t -i tcp:"$PORT" 2>/dev/null || true)
  19. if [ -n "$PIDS" ]; then
  20. echo "Found listeners via lsof."
  21. do_kill_pids "$PIDS"
  22. else
  23. echo "No listeners found via lsof."
  24. fi
  25. else
  26. echo "lsof not available."
  27. fi
  28. # 2) fuser (fallback)
  29. if command -v fuser >/dev/null 2>&1; then
  30. echo "Checking via fuser..."
  31. if fuser -n tcp "$PORT" >/dev/null 2>&1; then
  32. echo "Listener(s) still present. Killing via fuser."
  33. fuser -k -n tcp "$PORT" >/dev/null 2>&1 || true
  34. else
  35. echo "No listeners remaining via fuser."
  36. fi
  37. else
  38. echo "fuser not available."
  39. fi
  40. echo "Done."