无法使用端口 8080 - 该端口上运行着什么程序?(OS X Mavericks)

无法使用端口 8080 - 该端口上运行着什么程序?(OS X Mavericks)

我正在尝试使用 Cargo 在端口 8080 上运行 Tomcat,但它给出了以下消息:

org.codehaus.cargo.container.ContainerException:端口号 8080(使用属性 cargo.servlet.port 定义)正在使用中。请在系统上释放它或在容器配置中将其设置为其他端口。

当我telnet访问 8080 上的本地主机时,它就连接了。

但是,当我 时sudo lsof -n | grep 8080,我什么也看不到。两者都没有运气netstat

可能是什么问题呢?

答案1

很多网络命令的输出默认更易于阅读。它们使用主机名和服务名,而不是 IP 地址和端口号。

APP.DOMAIN.COM:http (LISTEN) 对比 10.191.12.109:80 (LISTEN)

对于grep此类命令输出中的端口号,您必须确保它使用端口号。lsof这是-P命令选项。

sudo lsof -n -P | grep :8080

因为netsat使用-n会关闭主机名和服务名。

sudo netstat -lpn | grep :8080

答案2

lsof@Brian 建议的命令应该可以工作(尽管我更喜欢用进行lsof自己的过滤sudo lsof -i:8080)。如果您没有看到任何这些命令,我​​怀疑还有其他事情发生。例如,Tomcat 是否可能试图两次打开端口并与自身发生冲突?

答案3

我还很难找到在端口 8080 上运行的程序,因为 sudo lsof -i:8080 和 netstat 命令都没有显示任何特定于端口 8080 的内容。我运行了 sudo lsof -i:80 命令来查找正在使用它的程序 - 结果是安装在我的 Mac 上的 ESet Antivirus 阻止了它。我卸载了 ESet,现在一切都好了。

相关内容