#!/usr/bin/env bash set -euo pipefail PORT="${1:-8570}" echo "====================================================" echo "🧹 trader-mcp killserver.sh (port $PORT)" echo "====================================================" do_kill_pids() { local pids="$1" if [ -z "$pids" ]; then return 0 fi echo "Killing PIDs:" "$pids" # shellcheck disable=SC2086 kill -9 $pids >/dev/null 2>&1 || true } # 1) lsof (precise) if command -v lsof >/dev/null 2>&1; then PIDS=$(lsof -t -i tcp:"$PORT" 2>/dev/null || true) if [ -n "$PIDS" ]; then echo "Found listeners via lsof." do_kill_pids "$PIDS" else echo "No listeners found via lsof." fi else echo "lsof not available." fi # 2) fuser (fallback) if command -v fuser >/dev/null 2>&1; then echo "Checking via fuser..." if fuser -n tcp "$PORT" >/dev/null 2>&1; then echo "Listener(s) still present. Killing via fuser." fuser -k -n tcp "$PORT" >/dev/null 2>&1 || true else echo "No listeners remaining via fuser." fi else echo "fuser not available." fi echo "Done."