是否可以在 linux 中找到哪个进程正在使用 OPENSSL?
Is it possible to find which process is using OPENSSL in linux?
假设,一个进程是运行并且访问OPENSSL共享库来执行一些操作。有什么办法可以找到这个进程的 pid 吗?
有什么方法可以在 上找到 这个过程是 运行 的哪个核心?
如果可能的话,是否需要任何特殊权限,如 sudo 等?
OS- Debian/Ubuntu
根据您的具体需求,可能会这样:
lsof | grep /usr/lib64/libcrypto.so | awk '{print , }' | sort -u
这本质上是:
- 使用
lsof
列出系统上所有打开的文件
- 搜索 OpenSSL 库路径(它也捕获像
libcrypto.so.1.0
这样的版本名称)
- 选择进程名和PID
- 删除所有重复条目
请注意,这还将输出使用共享库文件的先前实例的进程,例如更新到新版本然后删除。当一个进程有多个不同名称的线程时,它还有一个输出重复的小问题。
是的,这可能确实需要提升权限,具体取决于您的 /proc
目录的权限。
如果您确实需要处理器内核,您可以尝试这样的操作(归功于 ):
lsof | grep /usr/lib64/libcrypto.so | awk '{print }' |
xargs -r ps -L --no-headers -o pid,psr,comm -p | sort -u
将 lwp
变量添加到 ps
命令也会显示线程 ID:
lsof | grep /usr/lib64/libcrypto.so | awk '{print }' |
xargs -r ps -L --no-headers -o pid,lwp,psr,comm -p
PS:这个库的核心用户是什么 要求听起来还是有点不寻常。如果您从更广泛的角度提及您试图解决的问题,可能会更有用。
thkala 几乎是正确的。问题是答案是一半,因为它没有给出核心。
我会运行:
$ lsof | grep /usr/lib64/libcrypto.so |awk '{print }' | xargs ps -o pid,psr,comm -p
假设,一个进程是运行并且访问OPENSSL共享库来执行一些操作。有什么办法可以找到这个进程的 pid 吗? 有什么方法可以在 上找到 这个过程是 运行 的哪个核心?
如果可能的话,是否需要任何特殊权限,如 sudo 等?
OS- Debian/Ubuntu
根据您的具体需求,可能会这样:
lsof | grep /usr/lib64/libcrypto.so | awk '{print , }' | sort -u
这本质上是:
- 使用
lsof
列出系统上所有打开的文件 - 搜索 OpenSSL 库路径(它也捕获像
libcrypto.so.1.0
这样的版本名称) - 选择进程名和PID
- 删除所有重复条目
请注意,这还将输出使用共享库文件的先前实例的进程,例如更新到新版本然后删除。当一个进程有多个不同名称的线程时,它还有一个输出重复的小问题。
是的,这可能确实需要提升权限,具体取决于您的 /proc
目录的权限。
如果您确实需要处理器内核,您可以尝试这样的操作(归功于
lsof | grep /usr/lib64/libcrypto.so | awk '{print }' |
xargs -r ps -L --no-headers -o pid,psr,comm -p | sort -u
将 lwp
变量添加到 ps
命令也会显示线程 ID:
lsof | grep /usr/lib64/libcrypto.so | awk '{print }' |
xargs -r ps -L --no-headers -o pid,lwp,psr,comm -p
PS:这个库的核心用户是什么 要求听起来还是有点不寻常。如果您从更广泛的角度提及您试图解决的问题,可能会更有用。
thkala 几乎是正确的。问题是答案是一半,因为它没有给出核心。
我会运行:
$ lsof | grep /usr/lib64/libcrypto.so |awk '{print }' | xargs ps -o pid,psr,comm -p