[英]Is it possible to find which process is using OPENSSL in linux?
假设有一个进程正在运行,并且正在访问OPENSSL共享库以执行某些操作。 有什么办法可以找到这个过程的pid吗? 是否有任何方法可以找到此进程在哪个核心上运行?
如果可能的话,它是否需要诸如sudo等的任何特殊特权?
操作系统-Debian / Ubuntu
根据您的实际需求,可能会执行以下操作:
lsof | grep /usr/lib64/libcrypto.so | awk '{print $1, $2}' | sort -u
本质上:
lsof
列出系统上所有打开的文件 libcrypto.so.1.0
类的版本化名称) 请注意,这还将使用共享库文件的先前实例输出进程,例如,将其更新为新版本然后删除。 当一个进程有多个具有不同名称的线程时,它还存在输出重复项的小问题。
是的,这可能确实需要提升的特权,具体取决于您/proc
目录的权限。
如果确实需要处理器内核,则可以尝试以下操作(贷记到dkaz ):
lsof | grep /usr/lib64/libcrypto.so | awk '{print $2}' |
xargs -r ps -L --no-headers -o pid,psr,comm -p | sort -u
在ps
命令中添加lwp
变量还将显示线程ID:
lsof | grep /usr/lib64/libcrypto.so | awk '{print $2}' |
xargs -r ps -L --no-headers -o pid,lwp,psr,comm -p
PS: 这个库对用户的核心要求听起来还是有点不寻常。 如果您提到要更广泛地解决的问题,则可能会更有用。
thkala几乎是正确的。 问题在于答案是一半,因为它没有给出核心信息。
我会运行:
$ lsof | grep /usr/lib64/libcrypto.so |awk '{print $2}' | xargs ps -o pid,psr,comm -p
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.