我尝试了不同的命令netstat
、lsof
,但我的要求是,
我想通过监听端口说进程 x 正在 chl21000303.sesson.net:32456.
我想要一个只读取端口 32456 的 linux 命令,并希望在 java 中传递它,例如 java -jar runs.jar 端口。
所以我需要一些命令来只获取运行端口或监听端口。如果我尝试这样的 netstat 命令,我会说大约 20 行端口。
最佳答案
netstat | awk '{print $4}' | sed -nr 's/.*:([0-9]+)/\1/p' | xargs java -jar runs.jar
我对这个问题有点不清楚。上面的代码会将所有端口号插入 java 文件的参数中
如果您确定它会在 chl21000303.sesson.net 上,您可以改为这样做
netstat | awk '{print $4}' | sed -nr 's/chl21000303.sesson.net:([0-9]+)/\1/p' | xargs java -jar runs.jar
编辑-
为完成起见,我将快速概述所有操作。
netstat 获取所有连接并将其通过管道传输到 awk。 awk 获取第 4 列并将其通过管道传递给 sed。 sed 使用正则表达式获取端口号并将其作为参数通过管道传递给您的 java 程序
关于java - 如何在 linux 中只获取进程的监听端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29045812/