Estoy tratando de rastrear un comportamiento extraño de algunos procesos y me encontré con un punto que no estoy seguro de cómo rastrear el pasado. El proceso bloqueado, que adjunté al uso strace -p
mostró esto:
Process 7926 attached - interrupt to quit
read(3,
De acuerdo, está esperando la entrada en fd 3, así que fui a verificar qué es:
$ ls -l /proc/7926/fd/3
lr-x------ 1 user grp 64 Mar 15 10:41 /proc/7926/fd/3 -> pipe:[20043922]
Bien, entonces es una pipa ... ahora la pregunta: ¿quién es el escritor de esta pipa? Recuerdo que en Linux hay una característica especial para los sockets de dominio Unix donde puede solicitar una ruta de archivo que comience con un byte NUL para acceder al "espacio de nombres de socket abstracto" (mencionado aquí: http://tkhanson.net/cgit.cgi /misc.git/plain/unixdomain/Unix_domain_sockets.html ). No estoy seguro de si hay algo similar para las tuberías que pueda aprovechar, pero no he encontrado nada.
Esperaba una herramienta como fuser
o lsof
podría ayudar, pero no he llegado a ninguna parte.
¿Algunas ideas?
Puede obtener la lista de procesos utilizando la tubería mediante el
lsof
comando:lsof | grep 'FIFO.*20043922'
La salida mostrará los lectores (en la columna FD con entradas como 1r) y escritores (mismas columnas con entradas como 2w).
fuente