MENU

Linux查看进程的可执行程序路径

May 3, 2016 • Linux

Linux下,如果某些程序启动的时候没有加上绝对路径,直接在当前目录用“./程序名 参数表”的方式启动的话,使用ps或者top命令查看后台进程的时候,显示的Comand栏也只是“./程序名 参数表”的形式,为了找到该程序的绝对路径,想必大家最先想到的是用find命令全盘搜索,但是这样做的代价太大。而且当有多个同名文件时还不一定能区分开来,这里教大家一个更简单有效的办法。

因为任何一个程序启动以后,Linux系统会为其分配一个ID,即我们熟悉的PID,称为进程号,与此同时,系统会在/proc目录下为其创建一个独立的文件夹,文件夹以PID命名,在该文件夹内保存着该进程运行相关的详细信息,有兴趣的朋友可以进到这个目录下好好研究研究,不过今天的重点是获得该进程的绝对路径。

在该目录下有一个名为exe的文件,像Windows系统下的可执行文件,这其实是一个符号链接(类似于Windows下的快捷方式),它指向该进程对应程序的绝对路径。用file命令或ls命令查看该符号链接的属性即可获取它所指向的绝对路径。

    ls -l /proc/PID/exe
    file /proc/PID/exe
ps -el | grep hello
ls -l /proc/19120/exe | awk '{print $11}'

hello是某程序的名字,ps -el | grep hello 命令把是hello名字进程全部列出来。

然后,加入要查看进程号PID为19120的可执行程序路径,ls -l /proc/19120/exe | awk '{print $11}'
引用:[http://zorro.blog.51cto.com/2139862/1203039](http://zorro.blog.51cto.com/2139862/1203039 "Linux 进程绝对路径")
Last Modified: November 10, 2019