V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Vibra
V2EX  ›  程序员

[求助]如何查看一个动态库被多少进程所使用

  •  
  •   Vibra · 2022-04-25 20:41:23 +08:00 · 1600 次点击
    这是一个创建于 929 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司部署业务, 因为 libc 库不匹配, 所以把这个库降级了, 要求查看会不会影响别的进程, 这个怎么看, 求大佬们赐教

    8 条回复    2022-04-26 14:37:41 +08:00
    lovelylain
        1
    lovelylain  
       2022-04-25 20:44:21 +08:00 via Android
    为什么不 docker
    yanqiyu
        2
    yanqiyu  
       2022-04-25 20:55:05 +08:00   ❤️ 1
    libc 的话大概可以认为影响所有动态连接的程序
    Vibra
        3
    Vibra  
    OP
       2022-04-25 21:12:42 +08:00
    @jobmailcn 因为影响的是 apt
    lesismal
        4
    lesismal  
       2022-04-25 21:51:30 +08:00   ❤️ 1
    遍历下 /proc 下所有进程的 /pid/maps ,grep 每个进程的内存空间看看哪些打开了这个 so ,细节楼主自己完善下:

    find ./ -type d -maxdepth 1 | awk '{if(substr($0,3) ~ /^[0-9]+$/) print $0"/maps";}' | awk '{if(-f $0) print $0}'| xargs grep "your absolute path of .so" | awk '{split($0,a,"/"); print a[2]}' | uniq | awk '{if($0 ~/^[0-9]+$/) print "./"$0"/exe"}' | xargs ls -l | awk '{split($0,a," "); print a[11]}'
    hhhfhhf
        5
    hhhfhhf  
       2022-04-25 23:30:12 +08:00 via iPhone
    ldd 挨个看看二进制的依赖?
    Brian1900
        6
    Brian1900  
       2022-04-26 08:58:57 +08:00
    好问题
    hxndg
        7
    hxndg  
       2022-04-26 13:33:47 +08:00
    我理解 libc 是对过去兼容的,怎么确定降级能解决问题?
    而且降级可太危险
    Kasumi20
        8
    Kasumi20  
       2022-04-26 14:37:41 +08:00
    不匹配哪个程序,就把哪个程序静态编译一遍呗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1357 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 00:00 · PVG 08:00 · LAX 16:00 · JFK 19:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.