lib/killport.sh

568 B · 27 lines · bash

1#!/usr/bin/env bash
2
3brt_killport() {
4 local port="${1:-}"
5 if [[ -z "$port" ]]; then
6 brt_error "Usage: brt -killport <port>"
7 exit 1
8 fi
9
10 local pids
11 if command -v lsof &>/dev/null; then
12 pids=$(lsof -ti ":${port}" 2>/dev/null || true)
13 else
14 brt_error "lsof is required for -killport"
15 exit 1
16 fi
17
18 if [[ -z "$pids" ]]; then
19 brt_warn "Nothing listening on port ${port}"
20 exit 0
21 fi
22
23 brt_info "Killing process(es) on port ${port}: ${pids}"
24 echo "$pids" | xargs kill -9 2>/dev/null || kill -9 $pids
25 brt_ok "Port ${port} freed"
26}
27