Di Linux jika Anda /proc/<pid>/fd
sering menggali, Anda akan melihat output seperti:
lrwx------ 1 root root 64 Jul 30 15:14 0 -> /dev/null
lrwx------ 1 root root 64 Jul 30 15:14 1 -> /dev/null
l-wx------ 1 root root 64 Jul 30 15:14 10 -> pipe:[90222668]
lr-x------ 1 root root 64 Jul 30 15:14 11 -> pipe:[90222669]
l-wx------ 1 root root 64 Jul 30 15:14 13 -> pipe:[90225058]
lr-x------ 1 root root 64 Jul 30 15:14 14 -> pipe:[90225059]
Bagaimana saya mendapatkan lebih banyak info tentang pipa terbuka, seperti proses mana yang ada di ujung lain?
/proc
itu lambat. Bisakah seseorang memberikan solusi yang lebih efektif?Jawaban:
Serupa dengan jawaban lain, tetapi:
Akan menunjukkan kepada Anda kedua ujungnya, karena kedua ujungnya berbagi 'nomor pipa'.
sumber
lsof -n -P | grep 90222668
untuk menghindari pencarian nama yang tidak perlu, yang akan mempercepatnya.Satu-satunya cara untuk menemukan proses apa yang ada di ujung lain adalah dengan mengulang semua proses di / proc dan melihat yang menggunakan pipa itu (yaitu, yang memiliki symlink di / proc / pid / fd ke ID pipa yang sama)
sumber
ls -l /proc/*/fd/ | grep $PIPE_ID; ls -l /proc/*/fd/$FD | grep $PIPE_ID
Perintah ls pertama akan mencetak file deskriptor dari kedua ujung pipa, sedangkan yang kedua akan memberi Anda id prosesInformasi terbanyak yang saya tahu cara mendapatkan pipa terbuka adalah
Masih hanya menceritakan tentang salah satu ujungnya, aku khawatir.
sumber