Search code examples
linuxpipenamed-pipesdiagnostics

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) 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.