В Linux я могу убить процесс, зная только порт, который он прослушивает fuser -k 9000/tcp
, как мне сделать то же самое в MacOS?
14
lsof -P | grep ':PortNumber' | awk '{print $2}' | xargs kill -9
Измените PortNumber
на фактический порт, который вы хотите найти.
-9
к концу, чтобы заставить это работать, но я полагаю, что это связано с характером приложения для прослушивания и вообще не рекомендуемой практикойkill -9
.Добавление флагов -t и -i к lsof должно еще больше ускорить его, устраняя необходимость в grep и awk.
источник
Добавьте -n к lsof, и вы удалите обратный поиск DNS из команды и сократите время выполнения с минут до секунд.
источник
2. Закройте порт, убив PID процесса
источник
Вы можете увидеть, если порт, если открыт по этой команде
где 8000 - номер порта
Если порт открыт, он должен вернуть строку, содержащую идентификатор процесса (PID).
Скопируйте этот PID и
Если вам нужно увидеть все открытые порты, вы можете выполнить сканирование портов в приложении Network Utility.
источник
Вы можете использовать
kill -9 $(lsof -i:PORT -t) 2> /dev/null
, где PORT - ваш фактический номер порта. Это убьет процесс, который выполняется на вашем данном порту.источник