我发现的获取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文件系统下的 进程号目录 下面的文件镜像了进程的当前运行信息,从中可以看到:
| 【内容导航】 |
| 第1页:教你获取Linux进程的执行文件路径 | 第2页:教你获取Linux进程的执行文件路径 |
正在学习Linux知识图形桌面系统Debian学习经验总结相关资讯 Linux进程
- Linux进程间管道通信 (今 20:47)
- Linux线程(进程)数限制 (07月12日)
- Linux的进程优先级 (05月07日)
| - 开发调试Linux服务时好用的进程和 (07月15日)
- Linux进程优先级和nice值 (05月22日)
- Linux进程操作信息 (01月21日)
|
本文评论 查看全部评论 (0)