Как я могу найти идентификатор процесса и остановить процесс, работающий на порте 8080 на Mac?
На Ubuntu это работает:
ps -aux
и я могу найти процесс и запустить:
kill -9 pid
ps -aux
не похоже на работу, как я могу сделать это на Mac OS X Lion?
kill -9 pid
пока не попробуетеkill pid
. Многие процессы будут иметь обработчики сигналов, которые очистят их использование ресурсов, аккуратно закроют соединения и другие задачи перед завершением работы. Если вы убьете с -9, процесс немедленно прекратит свою работу без очистки. Убийство без -9 будет работать большую часть времени.Ответы:
По историческим причинам,
ps
варианты - запутанный и противоречивый беспорядок. На OS X Lion любой из них должен работать:У меня нет Ubuntu Box, удобного для тестирования, но, согласно man-странице ,
ps -aux
там тоже нет правильного способа сделать это:источник
Используйте
Activity Monitor
.Applications
->Utilities
->Activity Monitor
источник
Если вы хотите найти и уничтожить все процессы, которые соответствуют строке, вы также можете использовать следующее на Mac OSX:
По сути, это то, что он найдет (grep) все процессы, запущенные в настоящее время в вашей системе, в соответствии с AWK получает PID, который в команде PS является вторым столбцом, а последний принимает аргументы из AWK и убивает процессы.
Используйте SUDO, только если текущий пользователь не имеет каких-либо прав на удаление процесса и если у вас есть доступ к SUDO в вашей системе.
источник
Я считаю, что
ps -ef
на Mac это почти эквивалентноps -aux
на Linux.Чтобы узнать, какой PID использует порт 8080:
lsof -P | grep 8080
Поля отображаются на:
Я запустил,
ttcp -rs
который слушает на порт 5001.и действительно, PID 27999 соответствует PID
ttcp
процесса, который я запустил.источник
ps aux
(без черты) на OS X.ps -ef
включает в себя разные столбцы и использует другой формат.Чтобы оставаться в курсе, для macOS:
Для Linux:
источник