В Unix, как мне узнать, какие исполняемые файлы или процессы используют мои общие библиотеки? - PullRequest
0 голосов
/ 28 мая 2009

Как узнать, какие исполняемые файлы или процессы используют объекты моей общей библиотеки в среде Unix, особенно в среде AIX. Есть ли какая-нибудь команда для этого?

Ответы [ 4 ]

2 голосов
/ 28 мая 2009

В Linux вы бы:

for i in /usr/bin /bin /usr/local/bin /sbin /...; do
  # edit: bug fix to display which filename has the library
  # the egrep component will extract line with your library
  # or line with ":::", which contains name of the binary
  find /usr/bin -printf '::: %p\n' -exec ldd \{\} \; | egrep 'your lib. name|:::'
done

Пакет ldd для AIX можно найти, как описано здесь

Чтобы проверить запущенные процессы, вы можете: lsof | grep 'имя вашей библиотеки'. Как получить lsof для AIX можно найти здесь

0 голосов
/ 29 мая 2009

В Solaris Open или иначе:

Например; часть вывода подавлена ​​...

mybox @ myplace02: ~ $ pldd `` pgrep pidgin
5451: пиджин
/usr/lib/libc/libc_hwcap1.so.1
/usr/lib/libgdk-x11-2.0.so.0.1400.3
/usr/lib/libgdk_pixbuf-2.0.so.0.1400.3
/usr/lib/libglib-2.0.so.0.1800.0
/usr/lib/libgobject-2.0.so.0.1800.0
/usr/lib/libmlib.so.2
/usr/lib/libmlib/libmlib_sse2.so.2
/usr/lib/libgthread-2.0.so.0.1800.0
/lib/libpthread.so.1
/usr/lib/locale/en_US.UTF-8/en_US.UTF-8.so.3
/usr/lib/locale/common/methods_unicode.so.3
/lib/libthread.so.1
/usr/lib/libpurple.so.0.5.1
/lib/libnsl.so.1
/usr/lib/libgtk-x11-2.0.so.0.1400.3

0 голосов
/ 28 мая 2009

fuser может быть тем, что вы хотите.

0 голосов
/ 28 мая 2009

Не уверен, что это поможет, но, возможно, вы могли бы lsof .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...