8

有没有办法列出正在运行的 linux 进程使用的管道(例如,给定它的 pid 或进程名称)并确定它们的使用容量?

就像是:

lspipes -l -p pid

导致类似:

[rw]  descriptor  size  name

其中 rw 是管端类型,size 是其使用容量

或类似的东西

4

2 回答 2

12

1)ls -l /proc/pid/fd

这将列出管道

lr-x------ 1 prabagaran prabagaran 64 Sep  5 23:01 14 -> pipe:[57729]
l-wx------ 1 prabagaran prabagaran 64 Sep  5 23:01 15 -> pipe:[57728]
lr-x------ 1 prabagaran prabagaran 64 Sep  5 23:01 16 -> pipe:[57731]
lr-x------ 1 prabagaran prabagaran 64 Sep  5 23:01 17 -> pipe:[57730]

2)lsof | grep 57731

wineserve 3641 prabagaran   76w     FIFO        0,8       0t0   57731 pipe
winedevic 3651 prabagaran   16r     FIFO        0,8       0t0   57731 pipe

这些是与给定进程 ID 相关的管道信息。

于 2012-09-05T17:50:19.017 回答
2

我真的不认为有这样的命令。您可以尝试以下方法:

lsof -p PID | grep FIFO

其中 PID 代表进程 ID,而 FIFO 代表……什么都没有。你必须准确地写“FIFO”。可能有一个lsof开关可以只选择管道并避免使用grep,但我现在无法在手册页中找到它。

它应该给你一些接近你正在寻找的东西。

于 2012-09-05T15:55:13.123 回答