14

How can I find the process id and stop the process that is running on port 8080 on a Mac?

On Ubuntu this works:

ps -aux

and I can find the process and run:

kill -9 pid

ps -aux didn't seem to work, how can I do this on Mac OS X Lion?

slhck
  • 235,242

5 Answers5

20

For historical reasons, ps's options are a tangled and inconsistent mess. On OS X Lion, any of these should work:

ps -ax
ps -e
ps aux # this displays in a different format

I don't have an ubuntu box handy to test, but according to the man page, ps -aux isn't the right way to do it there either:

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.
10

If you wish to find and kill all processes which conform to a string, you can also use the following on a Mac OSX:

ps aux | grep <string> | awk '{print $1}' | <sudo> xargs kill -9

Basically what this will do is that it will find (grep) all the processes currently running on your system matching the , AWK gets the PID, which in the PS command is the second column and the last one takes the arguments from AWK and kills the processes.

Use SUDO, only if the current user does not have some rights to kill a process and if you have SUDO access on your system.

gagneet
  • 201
5

Use Activity Monitor.

Applications -> Utilities -> Activity Monitor

gadgetmo
  • 786
  • 4
  • 9
  • 25
3

I believe ps -ef on Mac is nearly equivalent to ps -aux on linux.

To get what PID has port 8080 in use: lsof -P | grep 8080

The fields map out to:

[mini-nevie:~] nevinwilliams% lsof -P | head -1
COMMAND     PID          USER   FD     TYPE             DEVICE  SIZE/OFF    NODE NAME

I started up ttcp -rs which listens on port 5001.

mini-nevie:~] nevinwilliams% lsof -P | grep 5001
ttcp      27999 nevinwilliams    3u    IPv4 0xb70c1f66028d6961       0t0     TCP *:5001 (LISTEN)

and indeed, PID 27999 corresponds to the PID of the ttcp process I launched.

1

To stay up to date, for macOS:

ps -e | grep python | awk '{print "sudo kill -9",  $1}' | sh

For Linux:

ps -ax | grep python | awk '{print "sudo kill -9",  $1}' | sh
mikeyy
  • 11