#!/bin/bash
# Script to kill processes on ports 6173, 8001, 5174, 5567, 3500

PORTS=(6173 8001 5174 5567 3500)

for port in "${PORTS[@]}"; do
    # Try using lsof
    if command -v lsof &> /dev/null; then
        PIDS=$(lsof -ti:$port 2>/dev/null)
        if [ ! -z "$PIDS" ]; then
            echo "Killing processes on port $port: $PIDS"
            kill -9 $PIDS 2>/dev/null
        fi
    # Try using fuser
    elif command -v fuser &> /dev/null; then
        echo "Killing processes on port $port"
        fuser -k $port/tcp 2>/dev/null
    # Try using ss
    elif command -v ss &> /dev/null; then
        PIDS=$(ss -tlnp | grep ":$port " | awk '{print $7}' | cut -d',' -f2 | cut -d'=' -f2 | sort -u)
        if [ ! -z "$PIDS" ]; then
            echo "Killing processes on port $port: $PIDS"
            kill -9 $PIDS 2>/dev/null
        fi
    fi
done

echo "Done checking ports: ${PORTS[@]}"
