No Linux, se você pesquisar /proc/<pid>/fd
frequentemente, verá 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]
Como obtenho mais informações sobre os tubos abertos, como qual processo está do outro lado?
/proc
é lento. Alguém pode fornecer uma solução mais eficaz?Respostas:
Semelhante a outras respostas, mas:
Mostrará as duas extremidades, porque ambas compartilham o 'número do tubo'.
fonte
lsof -n -P | grep 90222668
para evitar pesquisas de nome desnecessárias, o que deve acelerar.A única maneira de encontrar qual processo está do outro lado é fazer um loop em todos os processos em / proc e ver quais estão usando esse canal (ou seja, que possuem links simbólicos em / proc / pid / fd para o mesmo ID de canal)
fonte
ls -l /proc/*/fd/ | grep $PIPE_ID; ls -l /proc/*/fd/$FD | grep $PIPE_ID
O primeiro comando ls imprimirá os descritores de arquivo de ambas as extremidades do pipe, enquanto o segundo fornecerá o ID do processoO máximo de informações que eu sei como entrar em canos abertos é
Ainda só fala sobre uma extremidade, receio.
fonte