是否有可能在linux中找到使用OPENSSL的进程?

时间:2016-02-24 21:15:07

标签: linux security gcc debian performance-testing

假设有一个进程正在运行并访问OPENSSL共享库以执行某些操作。有没有办法找到这个过程的 pid ? 有没有办法找到哪个核心这个进程正在运行?

如果可能,是否需要sudo等特殊权限?

OS- Debian / Ubuntu

2 个答案:

答案 0 :(得分:1)

根据您的具体需要,可能会这样:

lsof | grep /usr/lib64/libcrypto.so | awk '{print $1, $2}' | sort -u

这基本上是:

  1. 使用lsof列出系统上所有打开的文件
  2. 搜索OpenSSL库路径(也会捕获libcrypto.so.1.0等版本化名称)
  3. 选择进程名称和PID
  4. 删除所有重复的条目
  5. 请注意,这也将使用共享库文件的先前实例输出进程,例如,更新到新版本然后删除。当进程具有多个具有不同名称的线程时,它还存在输出重复项的次要问题。

    是的,这可能确实需要提升权限,具体取决于/proc目录的权限。

    如果你真的需要处理器核心,你可以试试这样的东西(归功于dkaz):

    lsof | grep /usr/lib64/libcrypto.so | awk '{print $2}' |
        xargs -r ps -L --no-headers -o pid,psr,comm -p | sort -u
    

    lwp变量添加到ps命令也会显示线程ID:

    lsof | grep /usr/lib64/libcrypto.so | awk '{print $2}' |
        xargs -r ps -L --no-headers -o pid,lwp,psr,comm -p
    

    PS:这个库的用户是什么样的用户仍然听起来有点不寻常。如果你提到你试图用更广泛的术语解决的问题,它可能会更有用。

答案 1 :(得分:0)

thkala几乎是正确的。问题是答案是一半,因为它没有给出核心。

我会跑:

$ lsof | grep /usr/lib64/libcrypto.so |awk '{print $2}' | xargs ps -o pid,psr,comm -p