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?

Odpowiedzi:


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

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


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

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

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.


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

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.