[英]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.