有时候用top 打开任务管理器时知道某个任务的进程的存在,但不知道是哪个文件,只需两条指令只可定位进程的可执行文件路径
- 使用
ls -l /proc/<PID>/cwd
命令来查找该进程的当前工作目录。 - 使用
cat /proc/<PID>/cmdline
命令来查看该进程的命令行参数,参数可能包含路径信息。
# 查看运行目录
ls -l /proc/<PID>/cwd
# 查看执行参数
cat /proc/<PID>/cmdline
示例:
这里以查找一个python运行的进程文件为例子:
1 先找出所有python进程
ps -ef|grep python
找出所有的python 进程如下图:
这里我们 选择定位上图的mon.py文件路径为例,它的进程ID是 2921
ls -l /proc/2921/cwd
执行后我们找到执行此进程的当前路径,但还没有确定运行的python文件名称mon.py,需要查看执行参数:
cat /proc/2921/cmdline
如上图,执行后发现是 python3 mon.py ,这里的mon.py是当前目录,也就是说是在/usr/bin目录下执行了 python3 mon.py ,所以 mon.py文件就在/usr/bin/mon.py位置。