Respostas:
Outra maneira de ver o que é carregado em um processo é observando o /proc/PID/maps
arquivo. Isso mostra tudo mapeado em seu espaço de endereço, incluindo objetos compartilhados mapeados.
sudo grep libcairo.so /proc/*/maps
é uma ótima maneira de explorar tudo /proc/PID/maps
mencionado por Rich de uma vez. Saída de amostra:
/proc/8390/maps:7f0a9afae000-7f0a9b0bc000 r-xp 00000000 fc:00 274690 /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8390/maps:7f0a9b0bc000-7f0a9b2bc000 ---p 0010e000 fc:00 274690 /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8390/maps:7f0a9b2bc000-7f0a9b2bf000 r--p 0010e000 fc:00 274690 /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8390/maps:7f0a9b2bf000-7f0a9b2c0000 rw-p 00111000 fc:00 274690 /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8466/maps:7f0a9afae000-7f0a9b0bc000 r-xp 00000000 fc:00 274690 /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8466/maps:7f0a9b0bc000-7f0a9b2bc000 ---p 0010e000 fc:00 274690 /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8466/maps:7f0a9b2bc000-7f0a9b2bf000 r--p 0010e000 fc:00 274690 /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8466/maps:7f0a9b2bf000-7f0a9b2c0000 rw-p 00111000 fc:00 274690 /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
Além disso awk
e o bash-fu podem refinar ainda mais a saída.
Este método também mostra as bibliotecas abertas com dlopen
, testadas com esta configuração mínima hackeada com uma sleep(1000)
no Ubuntu 18.04.
Você pode executar o próximo comando pela raiz e ver uma lista completa,
cat /proc/*/maps | awk '{print $6;}' | grep '\.so' | sort | uniq
Isso é para usuários que não têm lsof.
lsof
não tenha a funcionalidade necessária.