我正在寻找一个命令来查看正在监听端口的进程,例如/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