如何在 OSX 中找到在给定端口上运行的进程

Bes*_*esi 7 terminal osx-snow-leopard macos

我想在我的本地 OSX Lion 机器上运行一个 Web 应用程序。当我访问http://localhost:8080 时,已经有一个进程在运行,因此我收到以下消息:

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
Run Code Online (Sandbox Code Playgroud)

如何在 OSX 下找到在此端口上运行的进程。我发现了几个在 Linux 上做同样事情的条目,但它们似乎在 OSX 中不起作用。

非常感谢。


更新 1:我运行命令会lsof -i -P | grep 8080产生以下输出

WebProces 174 petersmith   20u  IPv6 0xffffff80147e6cc0      0t0  TCP localhost:50059->localhost:8080 (ESTABLISHED)
Run Code Online (Sandbox Code Playgroud)

但这并没有告诉我在访问 URL 时哪个进程负责创建我在浏览器中获得的 html 输出

更新 2:我应该提到我想在我的机器上安装Jenkins CI并且已经有一个安装存在,它似乎在我的机器上有问题。

slh*_*hck 15

以一种非常普遍的方式:

sudo lsof -i -P
Run Code Online (Sandbox Code Playgroud)

... 将列出在某些端口上运行的所有进程。有关更多详细信息,请参阅此答案


在您的特殊情况下,Jenkins 已经在运行。这个 Stack Overflow 问题有更多信息:Can not run Jenkins on Mac。解决方案似乎是:

sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
Run Code Online (Sandbox Code Playgroud)

...这也与类似的堆栈溢出问题有关:如何停止安装在 Mac Snow Leopard 上的 Jenkins?