Estou tentando rastrear algum comportamento estranho de alguns processos e cheguei a um ponto que não sei ao certo como rastrear o passado. O processo interrompido, ao qual me anexei, strace -p
mostrou o seguinte:
Process 7926 attached - interrupt to quit
read(3,
Ok, então está aguardando a entrada no fd 3, então fui verificar o que é:
$ ls -l /proc/7926/fd/3
lr-x------ 1 user grp 64 Mar 15 10:41 /proc/7926/fd/3 -> pipe:[20043922]
Ok, então é um cano ... agora a pergunta - quem é o escritor desse cano? Lembro que no Linux há um recurso especial para soquetes de domínio unix, onde você pode solicitar um caminho de arquivo que comece com um byte NUL para acessar o "espaço de nome do soquete abstrato" (mencionado aqui: http://tkhanson.net/cgit.cgi /misc.git/plain/unixdomain/Unix_domain_sockets.html ). Não tenho certeza se há algo semelhante para tubos que eu possa tirar proveito, mas não encontrei nada.
Eu esperava que uma ferramenta como fuser
ou lsof
pudesse ajudar, mas não cheguei a lugar algum.
Alguma ideia?
Você pode obter a lista de processos usando o canal usando o
lsof
comando:lsof | grep 'FIFO.*20043922'
A saída mostrará os leitores (na coluna FD com entradas como 1r) e gravadores (mesmas colunas com entradas como 2w).
fonte