繁体   English   中英

如何检查哪个进程正在使用 ip/port?

[英]How can I check which process is using an ip/port?

我有一个程序偶尔无法启动,因为它要连接的 IP/端口已在使用中。 如何以编程方式检查哪个进程正在使用该端口? 在我注意到失败后,我可以手动运行lsof ,但是任何使用该端口的进程都必须在很短的时间内使用它,因为当我运行lsof时,它说没有任何东西正在使用该端口。 因此,我想在连接失败后立即在失败的程序中以编程方式查找哪个进程正在使用该端口。 我怎样才能做到这一点? 这一定是可能的,因为lsof做到了。

您可以使用netstat检查进程。 它将给出进程的pid。

这里有一个例子

nabil@LAPTOP:~$ netstat -natupe
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode      PID/Program name
tcp        0      0 127.0.0.1:5010          0.0.0.0:*               LISTEN      1000       261855     66050/confd.smp
tcp        0      0 127.0.0.53:53           0.0.0.0:*               
tcp6       0      0 127.0.0.1:50736         127.0.0.1:4569          ESTABLISHED 1000       697733     63666/java
tcp6       0      0 127.0.0.1:41145         127.0.0.1:49159         TIME_WAIT   0          0          -
tcp6       0      0 127.0.0.1:41145         127.0.0.1:44619         TIME_WAIT   0          0          -
udp        0      0 127.0.0.53:53           0.0.0.0:*                           101        23138      -

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM