如何快速确定哪个进程(如果有)监听串行端口

如何快速确定哪个进程(如果有)监听串行端口

我正在寻找一个命令来查看正在监听端口的进程,例如/dev/ttyS0(在 Linux 系统上具有 root 权限)。我可以使用以下命令来执行此操作

lsof /dev/ttyS0

但这确实太慢了。而且,我无法使用该-p标志来加快速度。

我想使用 Linux 系统的其他资源做同样的事情。可以吗?

答案1

我只尝试过使用虚拟控制台,但它可以工作(至少对于某些资源而言。我没有串行端口,但它对我的 tty 有效)

fuser -n 文件/dev/ttyS0

(当然,以 root 身份)

类似地,你可以使用 fuser -n tcp|udp XXXX 查找与套接字通信的内容

答案2

我知道这已经晚了,但是为了以后使用。如果 lsof(具有 root 权限)花费的时间太长,原因可能是它在大量 tcp/udp 端口​​打开时尝试解析主机名。可以使用 -n 选项避免这种情况 sudo lsof -n /dev/ttyS0 如果 -n 选项不可用,那么您可以尝试 -X 选项 sudo lsof -X /dev/ttyS0

相关内容