找出程序/进程正在侦听的端口 - lsof,netstat

时间:2015-01-20 15:09:29

标签: java shell ubuntu netstat lsof

在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}" "$@"

1 个答案:

答案 0 :(得分:1)

在几个命令中拆分它。首先使用java ...启动您的应用程序。然后,您可以使用jps查看新Java进程的进程ID(jps应与java位于同一文件夹中。)

现在您可以使用lsof -np <id>获取文件描述符列表。

但Java程序也可以挂起循环。要查看该计划目前正在执行的操作,请使用jstackjconsole