Macos – How to find the process that is running on a given port in OSX

macososx-snow-leopardterminal

I want to run a web application on my local OSX Lion machine. When I go to http://localhost:8080 there is already a process running so I get the following message:

Status Code: 404

Exception: Request URL / not found.<br><br>
Stacktrace:

Generated by Winstone Servlet Engine v0.9.10 at Wed Nov 30 13:01:15 CET 2011

How can I find the process that runs on this port under OSX. I found several entries that do the same on Linux but they do not seem to work in OSX.

Thanks a lot.


Update 1: I running the command lsof -i -P | grep 8080 results in the following output

WebProces 174 petersmith   20u  IPv6 0xffffff80147e6cc0      0t0  TCP localhost:50059->localhost:8080 (ESTABLISHED)

But this does not tell me which process is responsible for creating the html output that I get in my browser, when accessing the URL

Update 2: I should mention that I want to install Jenkins CI on my machine and there is already an installation present which seems to have a problem on my machine.

Best Answer

In a very general way:

sudo lsof -i -P

… will list you all processes running on certain ports. See this answer for more details.


In your special case, Jenkins is already running. This Stack Overflow question has more information: Can not run Jenkins on Mac. The solution seems to be:

sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist

… which is also related to the similar Stack Overflow question: How to stop Jenkins installed on Mac Snow Leopard?