En Linux, si vas a cavar a /proc/<pid>/fd
menudo, verás resultados como:
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]
¿Cómo obtengo más información sobre las tuberías abiertas, como qué proceso está en el otro extremo?
/proc
es lento. ¿Alguien puede proporcionar una solución más efectiva?Respuestas:
Similar a otras respuestas, pero:
Le mostrará ambos extremos, porque ambos extremos comparten el 'número de tubería'.
fuente
lsof -n -P | grep 90222668
para evitar búsquedas innecesarias de nombres, lo que debería acelerarlo.La única forma de encontrar qué proceso está en el otro extremo es recorrer todos los procesos en / proc y ver cuáles están usando esa tubería (es decir, cuáles tienen enlaces simbólicos en / proc / pid / fd a la misma ID de tubería)
fuente
ls -l /proc/*/fd/ | grep $PIPE_ID; ls -l /proc/*/fd/$FD | grep $PIPE_ID
el primer comando ls imprimirá los descriptores de archivo de ambos extremos de la tubería, mientras que el segundo le dará la identificación del procesoLa mayor cantidad de información que sé cómo obtener en tuberías abiertas es
Todavía solo cuenta sobre un extremo, me temo.
fuente