How to list pipes used by a process with a bash command
-
30-06-2021 - |
문제
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.