我试图确定哪个应用程序正在使用某个端口,并使用netstat -tlnp | grep <port> for Linux
命令。
该命令返回以下输出:
(Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.)
tcp 0 0 0.0.0.0:<port> 0.0.0.0:* LISTEN 3591/java
我需要仅获取进程的名称和PID,即java 3591。
最好的方法是什么?
谢谢。
sudo
。我稍微修改了一下:sudo netstat -tlnp | awk '/:80 */ {split($NF,a,"/"); print a[1]}' | xargs ps x -p
。 - funrollecho "tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1080/nginx: master" | awk '/:80 */ {split($NF,a,"/"); print a[2],a[1]}'
返回master
。 - Chris Stryczynskinetstat
输出在列之间包含多个空格,因此在AWK命令中添加一个多空格分隔符似乎可以解决问题:netstat -tlnp | awk -F ' ' '/:80 */ {split($NF,a,"/"); print a[2],a[1]}'
(这是-F
参数中的两个空格)。 - Dennis Williamson