Unix 哪些所有进程都在使用共享库
我在UNIX上有一个共享库(.so文件)。 我需要知道所有正在运行的进程都在使用它。Unix 哪些所有进程都在使用共享库,unix,Unix,我在UNIX上有一个共享库(.so文件)。 我需要知道所有正在运行的进程都在使用它。 unix是否提供任何此类实用程序/命令?您可以检查/proc//maps的内容,以查看哪些文件映射到每个进程中。您必须检查每个流程,但这比听起来容易: $ grep -l /lib/libnss_files-2.11.1.so /proc/*/maps /proc/15620/maps /proc/22439/maps /proc/22682/maps /proc/32057/maps 这仅适用于Linux/
unix是否提供任何此类实用程序/命令?您可以检查
/proc//maps
的内容,以查看哪些文件映射到每个进程中。您必须检查每个流程,但这比听起来容易:
$ grep -l /lib/libnss_files-2.11.1.so /proc/*/maps
/proc/15620/maps
/proc/22439/maps
/proc/22682/maps
/proc/32057/maps
这仅适用于Linux
/proc
文件系统,AFAIK.一个快速解决方案是使用该命令
这不仅适用于.so
文件,还适用于任何其他文件、目录、装入点等
注意:
lsof
显示使用文件的所有进程,因此如果进程打开了*。so
文件但未实际使用它,则极有可能出现误报。如果这对您来说是个问题,那么这将是一条出路。在所有感兴趣的目录中执行
ldd * >ldd_output
vi ldd_output
然后查找库名称,例如“aLib.so”。这显示了链接到的所有模块,例如“aLib.so”这是一个很好的提示。谢谢,肖恩。
ldd * >ldd_output
vi ldd_output