Saya mencoba untuk melacak beberapa perilaku aneh dari beberapa proses dan berlari ke titik saya tidak yakin bagaimana untuk melacak masa lalu. Proses digantung, yang saya lampirkan menggunakan strace -p
menunjukkan ini:
Process 7926 attached - interrupt to quit
read(3,
Oke, jadi menunggu input pada fd 3, jadi saya pergi untuk memeriksa apa itu:
$ ls -l /proc/7926/fd/3
lr-x------ 1 user grp 64 Mar 15 10:41 /proc/7926/fd/3 -> pipe:[20043922]
Oke, jadi itu pipa ... sekarang pertanyaannya - siapa penulis pipa ini? Saya ingat bahwa di Linux ada fitur khusus untuk soket domain unix di mana Anda dapat meminta jalur file yang dimulai dengan byte NUL untuk mengakses "abstrak soket namespace" (disebutkan di sini: http://tkhanson.net/cgit.cgi /misc.git/plain/unixdomain/Unix_domain_sockets.html ). Saya tidak yakin apakah ada sesuatu yang serupa dengan pipa yang bisa saya manfaatkan, tetapi saya belum menemukan apa pun.
Saya berharap alat suka fuser
atau lsof
mungkin bisa membantu, tetapi saya belum mendapatkan tempat.
Ada ide?
Anda bisa mendapatkan daftar proses menggunakan pipa dengan menggunakan
lsof
perintah:lsof | grep 'FIFO.*20043922'
Output akan menampilkan pembaca (di kolom FD dengan entri seperti 1r) dan penulis (kolom yang sama dengan entri seperti 2w).
sumber