13

В Linux я могу убить процесс, зная только порт, который он прослушивает, используя fuser -k 9000/tcp , как мне сделать то же самое в MacOS?

5 ответов5

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

Измените PortNumber на фактический порт, который вы хотите найти.

7

Добавление флагов -t и -i к lsof должно еще больше ускорить его, устраняя необходимость в grep и awk.

lsof -nti:NumberOfPort | xargs kill -9
2

Добавьте -n к lsof, и вы удалите обратный поиск DNS из команды и сократите время выполнения с минут до секунд.

lsof -Pn | grep ':NumberOfPort' | awk '{print $2}' | xargs kill -9
0

Вы можете использовать kill -9 $(lsof -i:PORT -t) 2> /dev/null , где PORT - ваш фактический номер порта. Это убьет процесс, который выполняется на вашем заданном порту.

0
  1. Проверьте ваш порт открыт или нет

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. Закройте порт, убив PID процесса

sudo kill -9 582

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .