在 Linux 中如果你经常深入研究/proc/<pid>/fd
,你会看到如下输出:
lrwx------ 1 root root 64 Jul 30 15:14 0 -> /dev/null
lrwx------ 1 root root 64 Jul 30 15:14 1 -> /dev/null
l-wx------ 1 root root 64 Jul 30 15:14 10 -> pipe:[90222668]
lr-x------ 1 root root 64 Jul 30 15:14 11 -> pipe:[90222669]
l-wx------ 1 root root 64 Jul 30 15:14 13 -> pipe:[90225058]
lr-x------ 1 root root 64 Jul 30 15:14 14 -> pipe:[90225059]
如何获取有关开放管道的更多信息,例如另一端是哪个进程?
答案1
与其他答案类似,但是:
lsof | grep 90222668
将显示两端,因为两端共享“管道号”。
答案2
找到另一端进程的唯一方法是循环遍历 /proc 中的所有进程,并查看哪些进程正在使用该管道(即,哪些进程在 /proc/pid/fd 中具有指向相同管道 ID 的符号链接)
答案3
我所知道的关于打开管道的最多的信息是
lsof|grep FIFO
恐怕仍然只讲述了事情的一个结局。
答案4
lsof +E | grep FIFO | grep 90222668