Anda dapat melihat pipa di /proc/$PID/fd
. Deskriptor adalah symlink ke sesuatu seperti pipe:[188528098]
. Dengan informasi itu Anda dapat mencari proses lainnya:
$ lsof -n | grep -w 188528098
sleep 1565 hl 1w FIFO 0,12 0t0 188528098 pipe
sleep 1566 hl 0r FIFO 0,12 0t0 188528098 pipe
Atau, jika Anda ingin memastikan (untuk pemrosesan otomatis) bahwa nomor tersebut adalah soket dan bukan bagian dari nama file:
$ lsof -n | awk 'NF==9 && $5=="FIFO" && $9=="pipe" && $8==188528098'
Dengan lsof
4.88 dan di atasnya, Anda juga dapat menggunakan tanda -E
atau +E
:
Dalam kombinasi dengan -p <pid>
,, -d <descriptor>
Anda bisa mendapatkan informasi endpoint untuk deskriptor spesifik pid yang diberikan .
$ sleep 1 | sh -c 'lsof -E -ap "$$" -d 0; exit'
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sh 27176 chazelas 0r FIFO 0,10 0t0 2609460 pipe 27175,sleep,1w
Di atas memberi tahu kami bahwa fd
0 of sh
adalah pipa dengan fd 1 of sleep
di ujung yang lain. Jika Anda mengubah -E
ke +E
, Anda juga mendapatkan informasi lengkap untuk itu dari sleep
:
$ sleep 1 | sh -c 'lsof +E -ap "$$" -d 0; exit'
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sleep 27066 chazelas 1w FIFO 0,10 0t0 2586272 pipe 27067,sh,0r 27068,lsof,0r
sh 27067 chazelas 0r FIFO 0,10 0t0 2586272 pipe 27066,sleep,1w
(lihat bagaimana lsof
juga memiliki pipa di stdin-nya)