在AIX系统中查找后台程序:  ps -ef|grep xxx 

可是有时用ps -ef看到的后台程序却没有全路径,只有程序名(泪奔)

test:/usr/bin>ps -ef|grep -i loop

UID         PID          PPID       C         STIME       TTY       TIME          CMD
root        275134       1          0        10:28:44      –          0:00          sh — loop_test.sh

只告诉我loop_test.sh,于是which、whereis、locate,就差在根目录下find了

 

那如何获取进程的全路径进而找到该程序呢?

so easy!!!

其实每个进程启动之后在 /proc 下面有一个于pid对应的路径
PID就是其进程号
我们可以看到loop_test.sh的进程号是275134

到/proc/275134 下,ll(或者ls -l)会看到:

JXBI_APP4:/proc/275134>ll
total 40
-rw——- 1 test   test          0 Mar 20 10:37 as
-r——– 1 test   test        128 Mar 20 10:37 cred
–w——- 1 test   test          0 Mar 20 10:37 ctl
lr-x—— 10 test   test          0 Mar 20 10:37 cwd@ -> /data1/src/test//
dr-x—— 1 test   test          0 Mar 20 10:37 fd/
dr-xr-xr-x 1 test   test          0 Mar 20 10:37 lwp/
-r——– 1 test   test          0 Mar 20 10:37 map
dr-x—— 1 test   test          0 Mar 20 10:37 object/
-r–r–r– 1 test   test        448 Mar 20 10:37 psinfo
-r——– 1 test   test      12288 Mar 20 10:37 sigact
-r——– 1 test   test       1520 Mar 20 10:37 status
-r–r–r– 1 test   test          0 Mar 20 10:37 sysent

其中的cwd@,就是你要查找的进程所在路径了。

即全路径为:/data1/src/test/loop_test.sh

大功告成,打完收工!

 

参考资料:在linux环境下如何查看进程的全路径

http://www.blogjava.net/kxx129/archive/2014/03/19/411230.html

版权声明:本文为sange3原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/sange3/p/6587039.html