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

2022-04-25 20:41:23 +08:00
 Vibra

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

1612 次点击
所在节点    程序员
8 条回复
lovelylain
2022-04-25 20:44:21 +08:00
为什么不 docker
yanqiyu
2022-04-25 20:55:05 +08:00
libc 的话大概可以认为影响所有动态连接的程序
Vibra
2022-04-25 21:12:42 +08:00
@jobmailcn 因为影响的是 apt
lesismal
2022-04-25 21:51:30 +08:00
遍历下 /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
2022-04-25 23:30:12 +08:00
ldd 挨个看看二进制的依赖?
Brian1900
2022-04-26 08:58:57 +08:00
好问题
hxndg
2022-04-26 13:33:47 +08:00
我理解 libc 是对过去兼容的,怎么确定降级能解决问题?
而且降级可太危险
Kasumi20
2022-04-26 14:37:41 +08:00
不匹配哪个程序,就把哪个程序静态编译一遍呗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/849236

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX