'How to list pipes used by a process with a bash command
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
Solution 1:[1]
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.
Solution 2:[2]
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. 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.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Gustav Larsson |
Solution 2 | Iain Samuel McLean Elder |