
Как узнать идентификатор процесса и остановить процесс, запущенный на порту 8080 на Mac?
В Ubuntu это работает:
ps -aux
и я могу найти процесс и запустить:
kill -9 pid
ps -aux
похоже, не сработало, как это сделать на Mac OS X Lion?
решение1
По историческим причинам ps
опции 's запутаны и непоследовательны. На OS X Lion любой из них должен работать:
ps -ax
ps -e
ps aux # this displays in a different format
У меня нет под рукой Ubuntu Box, чтобы протестировать, но согласностраница руководства, ps -aux
это тоже не правильный способ сделать это там:
Note that "ps -aux" is distinct from "ps aux". The POSIX and UNIX
standards require that "ps -aux" print all processes owned by a user
named "x", as well as printing all processes that would be selected by
the -a option. If the user named "x" does not exist, this ps may
interpret the command as "ps aux" instead and print a warning. This
behavior is intended to aid in transitioning old scripts and habits. It
is fragile, subject to change, and thus should not be relied upon.
решение2
Если вы хотите найти и завершить все процессы, соответствующие строке, вы также можете использовать следующую команду на Mac OSX:
ps aux | grep <string> | awk '{print $1}' | <sudo> xargs kill -9
По сути, это приведет к тому, что будут найдены (grep) все процессы, запущенные в данный момент в вашей системе и соответствующие , AWK получит PID, который в команде PS находится во втором столбце, а последний столбец берет аргументы из AWK и завершает процессы.
Используйте SUDO только в том случае, если у текущего пользователя нет прав на завершение процесса и если у вас есть доступ SUDO в вашей системе.
решение3
ИспользоватьActivity Monitor
.
Applications
-> Utilities
->Activity Monitor
решение4
Чтобы оставаться в курсе событий, для macOS:
ps -e | grep python | awk '{print "sudo kill -9", $1}' | sh
Для Linux:
ps -ax | grep python | awk '{print "sudo kill -9", $1}' | sh