热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CentOS查看程序、进程的依赖库的方法

1.利用ldd查看可执行程序的依赖库[root@~]#ldd/usr/local/php/bin/phplinux-vdso.so.1=>(0x00007fff753f5000)libcrypt.so.1=>/lib64/libcrypt.so.1(0x00000031f4600000)librt.so.1

1. 利用ldd查看可执行程序的依赖库

[root@~]# ldd /usr/local/php/bin/php
    linux-vdso.so.1 =>  (0x00007fff753f5000)
    libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00000031f4600000)
    librt.so.1 => /lib64/librt.so.1 (0x000000311ee00000)
    libmysqlclient.so.18 => /usr/local/mysql/lib/libmysqlclient.so.18 (0x00007f767b422000)
    libmcrypt.so.4 => /usr/lib64/libmcrypt.so.4 (0x00007f767b1ef000)
    libiconv.so.2 => /usr/local/lib/libiconv.so.2 (0x00007f767af0a000)
    libcurl.so.4 => /usr/lib64/libcurl.so.4 (0x0000003519800000)
    libm.so.6 => /lib64/libm.so.6 (0x00000031f2200000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00000031f1600000)
    libnsl.so.1 => /lib64/libnsl.so.1 (0x00000031f3a00000)
    libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00000031f8a00000)
    libz.so.1 => /usr/local/lib/libz.so.1 (0x00007f767acf2000)
    libssl.so.10 => /usr/lib64/libssl.so.10 (0x000000311c600000)
    libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00000031f7600000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x000000311ce00000)
    libc.so.6 => /lib64/libc.so.6 (0x00000031f0e00000)
    libresolv.so.2 => /lib64/libresolv.so.2 (0x00000031f3200000)
    libfreebl3.so => /lib64/libfreebl3.so (0x00000031f4e00000)
    /lib64/ld-linux-x86-64.so.2 (0x00000031f0a00000)
    libidn.so.11 => /lib64/libidn.so.11 (0x00000031f7e00000)
    libldap-2.4.so.2 => /lib64/libldap-2.4.so.2 (0x000000351c000000)
    libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x000000311f200000)
    libkrb5.so.3 => /lib64/libkrb5.so.3 (0x000000311e200000)
    libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00000031f7200000)
    libcom_err.so.2 => /lib64/libcom_err.so.2 (0x000000311e600000)
    libssl3.so => /usr/lib64/libssl3.so (0x000000351b800000)
    libsmime3.so => /usr/lib64/libsmime3.so (0x000000351bc00000)
    libnss3.so => /usr/lib64/libnss3.so (0x000000351a800000)
    libnssutil3.so => /usr/lib64/libnssutil3.so (0x000000351a400000)
    libplds4.so => /lib64/libplds4.so (0x000000351ac00000)
    libplc4.so => /lib64/libplc4.so (0x000000351b400000)
    libnspr4.so => /lib64/libnspr4.so (0x000000351b000000)
    libssh2.so.1 => /usr/lib64/libssh2.so.1 (0x0000003519c00000)
    liblber-2.4.so.2 => /lib64/liblber-2.4.so.2 (0x000000351a000000)
    libsasl2.so.2 => /usr/lib64/libsasl2.so.2 (0x00000031f8200000)
    libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00000031f7a00000)
    libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00000031f6e00000)
    libselinux.so.1 => /lib64/libselinux.so.1 (0x00000031f2600000)

注:ldd通过调用动态链接器来获取可执行程序的依赖库,但是并不推荐在未知的可执行程序上执行业ldd来获取其依赖库,因为部分版本的ldd会直接通过调用该可执行程序来获取其依赖库,这存在安全风险。

2. 利用pmap工具查询未知的可执行程序的依赖库

[root@~]# objdump -p /usr/local/php/bin/php |grep NEEDED
  NEEDED               libcrypt.so.1
  NEEDED               librt.so.1
  NEEDED               libmysqlclient.so.18
  NEEDED               libmcrypt.so.4
  NEEDED               libiconv.so.2
  NEEDED               libcurl.so.4
  NEEDED               libm.so.6
  NEEDED               libdl.so.2
  NEEDED               libnsl.so.1
  NEEDED               libxml2.so.2
  NEEDED               libz.so.1
  NEEDED               libssl.so.10
  NEEDED               libcrypto.so.10
  NEEDED               libpthread.so.0
  NEEDED               libc.so.6
  NEEDED               libresolv.so.2

3. 利用pmap查看正在运行时的进程的依赖库

利用pldd工具既可以获取进程的内存映射信息,也可以获取进程的依赖共享库信息:

[root@~/software/pldd]# ps -ef|grep php-fpm
root     26534     1  0  2014 ?        00:01:34 php-fpm: master process (/usr/local/php-5.3.29/etc/php-fpm.conf)
nobody   26535 26534  0  2014 ?        00:00:04 php-fpm: pool www          
nobody   26536 26534  0  2014 ?        00:00:05 php-fpm: pool www          
root     30510 30324  0 00:39 pts/0    00:00:00 grep php-fpm
[root@~/software/pldd]# pmap 26534 |head 
26534:   php-fpm: master process (/usr/local/php-5.3.29/etc/php-fpm.conf)
0000000000400000  10452K r-x--  /usr/local/php-5.3.29/sbin/php-fpm
0000000001035000     76K rw---  /usr/local/php-5.3.29/sbin/php-fpm
0000000001048000    104K rw---    [ anon ]
0000000002a65000   3448K rw---    [ anon ]
000000311c600000    388K r-x--  /usr/lib64/libssl.so.1.0.1e
000000311c661000   2048K -----  /usr/lib64/libssl.so.1.0.1e
000000311c861000     16K r----  /usr/lib64/libssl.so.1.0.1e
000000311c865000     28K rw---  /usr/lib64/libssl.so.1.0.1e
000000311ce00000     92K r-x--  /lib64/libpthread-2.12.so


推荐阅读
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
  •     这里使用自己编译的hadoop-2.7.0版本部署在windows上,记得几年前,部署hadoop需要借助于cygwin,还需要开启ssh服务,最近发现,原来不需要借助cy ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
author-avatar
mobiledu2502887153
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有