2010-12-13 15 views

Antwort

5

Sie können den Inhalt von /proc/<pid>/maps überprüfen, um zu sehen, welche Dateien in jedem Prozess zugeordnet sind. Sie werden jeden Prozess überprüfen müssen, aber das ist einfacher als es klingt:

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

Dies funktioniert nur auf dem Linux-Dateisystem /proc, AFAIK.

3

Eine schnelle Lösung wäre die lsof Befehl verwenden

[[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 

Dies sollte nicht nur für .so Dateien arbeiten, aber andere Dateien, Verzeichnisse, Einhängepunkte usw.

N. B. lsof zeigt alle Prozesse an, die eine Datei verwenden. Es besteht daher eine sehr geringe Wahrscheinlichkeit für ein falsches positives Ergebnis, wenn ein Prozess die Datei *.so öffnet, aber nicht verwendet. Wenn dies ein Problem für Sie ist, dann wäre Marcelo's answer der Weg zu gehen.

+0

Dies ist ein guter Tipp. Danke Shawn. –

0

Do in allen Verzeichnissen von Interesse

ldd * >ldd_output 
vi ldd_output 

Dann für die Bibliotheksnamen suchen, zum Beispiel "ALib.so". Dies zeigt alle Module, die z.B. "aLib.so"

Verwandte Themen