2010-12-13 7 views

Répondre

5

Vous pouvez inspecter le contenu de /proc/<pid>/maps pour voir quels fichiers sont mappés dans chaque processus. Vous devrez inspecter tous les processus, mais qui est plus facile qu'il n'y paraît:

$ grep -l /lib/libnss_files-2.11.1.so /proc/*/maps 
/proc/15620/maps 
/proc/22439/maps 
/proc/22682/maps 
/proc/32057/maps 

Cela ne fonctionne que sur le système de fichiers Linux /proc, autant que je sache.

3

Une solution rapide serait d'utiliser la commande lsof

[[email protected]]# lsof /lib/libattr.so.1 
COMMAND  PID USER FD TYPE DEVICE SIZE NODE NAME 
gdm-binar 11442 root mem REG 8,6 30899 295010 /lib/libattr.so.1.1.0 
gdm-binar 12195 root mem REG 8,6 30899 295010 /lib/libattr.so.1.1.0 

Cela devrait fonctionner non seulement pour .so fichiers, mais tous les autres fichiers, dirs, points de montage, etc.

N.B. lsof affiche tous les processus qui utilisent un fichier, donc il y a une possibilité très faible d'un faux positif si un processus ouvre le fichier *.so mais ne l'utilise pas réellement. Si c'est un problème pour vous, alors Marcelo's answer serait le chemin à parcourir.

+0

Ceci est un excellent conseil. Merci Shawn. –

0

Do dans tous les répertoires d'intérêt

ldd * >ldd_output 
vi ldd_output 

ensuite chercher le nom de la bibliothèque, par exemple "ALib.so". Ceci montre tous les modules liés par ex. "aLib.so"

Questions connexes