【发布时间】:2015-03-18 21:08:25
【问题描述】:
在 Ubuntu 下,我有一个交互式程序,我怀疑它挂在侦听特定端口上,不知道是哪个。
它是一个 shell 脚本,它在最后一行调用 java 命令。
如何在“挂起”状态下轻松找出它正在侦听的端口?
我尝试将 lsof 放在命令前面,但是写出了一条巨大的路径,上面写着“lsof: path too long”
lsof -c java ${JAVA_OPTS} -classpath "${SERVLET_API}:${JSP_API}:${OPENCMS_CLASSPATH}:${TOMCAT_CLASSPATH}:${OPENCMS_BASE}/classes" org.opencms.main.CmsShell -base="${OPENCMS_BASE}" "$@"
【问题讨论】:
-
您可以尝试使用 netstat 而不是 lsof 来查看哪些端口正在监听连接。
-
尝试查找您怀疑的程序的名称,例如 lsof -i -P | grep
-
在端口监听不会导致挂起,但从端口读取会导致阻塞。
-
Java 的哪个版本?
标签: java shell ubuntu netstat lsof