松哥(jccz_zys)的专栏

专著于linux内核、网络通信、MySQL方面的学习研究;希望与大家多交流

如何获取linux进程的执行文件路径

如何获取linux进程的执行文件路径

    我发现的获取linux进程的执行文件路径的方法有如下2个:
    1、在c++代码里面通过函数gecpwd获取进程当前执行文件路径,通过日志或
       控制台来显示当前进程的运行路径。这估计是大家看到这个标题就想到的
       方法。
    2、直接通过shell来查看,这也是我在实际情况中碰到的情况:
           就是我们开发的系统,控制了在同一个路径下只能够运行一次,在实际部署
       环境过程中会在不同的路径下提供不同的tcp端口号给不同的应用来测试联调,
       这样,在以./cmd的形式运行多个程序后,会出现通过ps查看进程时,看到n多
       的./cmd的同名进程在运行。一旦那个应用出现问题或者时间久了后,需要查找
       对应目录时,不能够迅速定位那个进程是运行在那个具体的位置以及为谁服务。
       具体做法就是:
           1、以超级用户登陆
           2、进入/proc目录
           3、ps查看所有符合./cmd的进程,找出其对应的进程号
           4、用ll命令: ll 进程号
              如下显示一个示例:
              [root@Cluster1 proc]# ll 22401
       total 0
       -r--r--r--    1 zhouys    zhouys     0 Dec 11 11:10 cmdline
       -r--r--r--    1 zhouys    zhouys     0 Dec 11 11:10 cpu
       lrwxrwxrwx    1 zhouys    zhouys     0 Dec 11 11:10 cwd -> /home/zhouys/sbs/bin
       -r--------    1 zhouys    zhouys     0 Dec 11 11:10 environ
       lrwxrwxrwx    1 zhouys    zhouys     0 Dec 11 11:10 exe -> /home/zhouys/sbs/bin/cbs (deleted)
       dr-x------    2 zhouys    zhouys     0 Dec 11 11:10 fd
       -r--------    1 zhouys    zhouys     0 Dec 11 11:10 maps
       -rw-------    1 zhouys    zhouys     0 Dec 11 11:10 mem
       -r--r--r--    1 zhouys    zhouys     0 Dec 11 11:10 mounts
       lrwxrwxrwx    1 zhouys    zhouys     0 Dec 11 11:10 root -> /
       -r--r--r--    1 zhouys    zhouys     0 Dec 11 11:10 stat
       -r--r--r--    1 zhouys    zhouys     0 Dec 11 11:10 statm
       -r--r--r--    1 zhouys    zhouys     0 Dec 11 11:10 status
              /proc文件系统下的 进程号目录 下面的文件镜像了进程的当前运行信息,
              从中可以看到:
               cwd符号链接的就是进程22401的运行目录;
               exe符号连接就是执行程序的绝对路径;
               cmdline就是程序运行时输入的命令行命令;本例为:./cbs
               cpu记录了进程可能运行在其上的cpu;显示虚拟的cpu信息
               environ记录了进程运行时的环境变量
               fd目录下是进程打开或使用的文件的符号连接
               ...
                   
        通过cwd直接进入进程运行目录,通过查看相关信息就可以定位此目录对应那个端口号,以及
    定位是那个应用才使用此服务程序。         
               
        

阅读更多
个人分类: linux内核/网络通讯
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭