Jak zabić proces przez port na MacOS, a la fuser -k 9000 / tcp

13

W systemie Linux mogę zabić proces, znając tylko port, z którego nasłuchuje. fuser -k 9000/tcpJak mogę to zrobić w systemie MacOS?

Kris
źródło

Odpowiedzi:

17
lsof -P | grep ':PortNumber' | awk '{print $2}' | xargs kill -9

Przejdź PortNumberdo faktycznego portu, którego chcesz wyszukać.

Stefan
źródło
2
Musiałem tylko dodać -9do końca, aby to zadziałało, ale uważam, że wynika to z natury aplikacji do słuchania i nie jest to ogólnie zalecana praktyka kill -9.
Kris,
@Kris - lsof -P | grep ': NumberOfPort' | awk '{print 2 USD}' | xargs kill -9 działał!
asy.
7

Dodanie flag -t i -i do lsof powinno przyspieszyć go jeszcze bardziej, eliminując potrzebę grep i awk.

lsof -nti:NumberOfPort | xargs kill -9
Zlemini
źródło
1
Działa i jest bardziej zwięzły niż zaakceptowana odpowiedź!
Big Rich
2

Dodaj -n do lsof, a usuniesz odwrotne wyszukiwanie DNS z polecenia i skrócisz czas działania z minut do sekund.

lsof -Pn | grep ':NumberOfPort' | awk '{print $2}' | xargs kill -9
stevehollx
źródło
0

Możesz użyć kill -9 $(lsof -i:PORT -t) 2> /dev/null, gdzie PORT jest twoim rzeczywistym numerem portu. Zabije to proces działający na danym porcie.

Epk
źródło
Powtarzacie inną odpowiedź
yass
0
  1. Sprawdź, czy Twój port jest otwarty, czy nie

sudo lsof -i: {PORT_NUMBER}

COMMAND PID     USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
java    582 Thirumal  300u  IPv6 0xf91b63da8f10f8b7      0t0  TCP *:distinct (LISTEN)

2. Zamknij port, zabijając proces PID

sudo kill -9 582
Thirumal
źródło
0

Możesz sprawdzić, czy port jest otwarty przez to polecenie

 sudo lsof -i :8000

gdzie 8000 to numer portu

Jeśli port jest otwarty, powinien zwrócić ciąg znaków zawierający identyfikator procesu (PID).

Skopiuj ten PID i

kill -9 PID

Jeśli chcesz zobaczyć wszystkie otwarte porty, możesz wykonać skanowanie portów w aplikacji Network Utility.

rohanharikr
źródło