50 lines
1.1 KiB
Bash
Executable File
50 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
# Kill processes listening on the Next.js test/main deployment ports.
|
|
|
|
PORTS="9135 9185"
|
|
|
|
find_pids_by_port() {
|
|
port="$1"
|
|
if command -v lsof >/dev/null 2>&1; then
|
|
lsof -ti tcp:"$port" 2>/dev/null || true
|
|
return
|
|
fi
|
|
|
|
if command -v fuser >/dev/null 2>&1; then
|
|
fuser "$port"/tcp 2>/dev/null || true
|
|
return
|
|
fi
|
|
|
|
echo "WARN: neither lsof nor fuser is available; cannot inspect port $port" >&2
|
|
}
|
|
|
|
kill_port() {
|
|
port="$1"
|
|
pids="$(find_pids_by_port "$port")"
|
|
|
|
if [ -z "$pids" ]; then
|
|
echo "port $port: no process found"
|
|
return
|
|
fi
|
|
|
|
echo "port $port: stopping PID(s) $pids"
|
|
kill $pids 2>/dev/null || true
|
|
sleep 2
|
|
|
|
still_running=""
|
|
for pid in $pids; do
|
|
if kill -0 "$pid" 2>/dev/null; then
|
|
still_running="$still_running $pid"
|
|
fi
|
|
done
|
|
|
|
if [ -n "$still_running" ]; then
|
|
echo "port $port: force killing PID(s)$still_running"
|
|
kill -9 $still_running 2>/dev/null || true
|
|
fi
|
|
}
|
|
|
|
for port in $PORTS; do
|
|
kill_port "$port"
|
|
done
|