The fuser command on Mac OS X is rather primitive and can't check for processes listening on a specific port. Does anybody know a good alternative? It it enough to know which process listening on that one port.
Asked
Active
Viewed 7,014 times
1 Answers
17
As @vcsjones said in the comments, lsof is the tool for this:
$ sudo lsof -i tcp:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Safari 804 gordon 16u IPv4 0x05a2cec8 0t0 TCP 192.168.6.3:50542->stackoverflow.com:http (ESTABLISHED)
httpd 874 root 3u IPv6 0x05a2a940 0t0 TCP *:http (LISTEN)
httpd 878 _www 3u IPv6 0x05a2a940 0t0 TCP *:http (LISTEN)
Without the -i, it shows all open files; with just -i it shows network files only; if you specify something after the -i you can restrict by any or all of: IPv4/6, TCP/UDP, hostname or IP, and port number/service name.
Gordon Davisson
- 34,084
- 5
- 66
- 70
-
4Just in case it's useful for someone like me looking to blindly kill all processes using a given port: `lsof -i tcp:5000 | grep LISTEN | awk '{print $2}' | xargs kill` kills all processes listening on port 5000 – JeremyKun Jun 28 '16 at 21:02