문제

Is there a way to list pipes used by a running linux process (e.g. given its pid or process name) and to determine their used capacity?

Something like:

lspipes -l -p pid

resulting in something like:

[rw]  descriptor  size  name

where rw is the pipe end type and size is its used capacity

Or something similar

도움이 되었습니까?

해결책

1) ls -l /proc/pid/fd

This will list the pipes

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

These are the pipe information related to the given process id.

다른 팁

I don't really think there's such a command. You can try the following:

lsof -p PID | grep FIFO

Where PID stand for the process id, while FIFO stands for... nothing. You have to write exactly "FIFO". Probably there's a lsof switch to select only pipes and avoiding the grep, but I cannot find it in the man page right now.

It should give you something close to what you're looking for.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top