Respostas:
Outra maneira de ver o que é carregado em um processo é observando o /proc/PID/mapsarquivo. 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 awke 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.
lsofnão tenha a funcionalidade necessária.