在 HPUX 上,如何列出所有正在运行的进程的可执行文件的完整路径?

在 HPUX 上,如何列出所有正在运行的进程的可执行文件的完整路径?

我需要:所有当前正在运行的可执行文件及其完整路径的列表。

像这样:

1234 /完整/路径/到/可执行文件
4567 /完整/路径/到/可执行文件2

使用UNIX95= ps -exo pid,comm我可以得到一个包含 PID 和类似命令的列表

11146 /opt/wbem/lbin/cimprovagt 0 4 8 根 IOTreeModule
8338 /opt/ssh/libexec/sftp 服务器
16684 postgres:sfmdb evweb [本地] 空闲
2518 /usr/sbin/stm/uut/bin/tools/monitor/WbemWrapperMonitor
2264 /usr/sbin/psb/bin/diagtxd
8340 -sh
7772 sshd:根@pts/0
8333 sshd:root@pts/1
7777 /opt/ssh/libexec/sftp 服务器

这是我所能得到的最接近的结果ps,但还不够好:

  • 有些行不包含完整路径(显然是因为它们不是使用完整路径启动的)。
  • 可执行文件名称后的额外数据(我需要支持名称中带有空格的可执行文件,因此我不能只拆分字符串)

因此,我得出结论,这ps不会让我走到最后。

是否有与 Linux 的 /proc 等效的程序,其中 /proc/{pid}/exe 指向可执行文件?如果没有,还有其他方法可以实现此目的吗?

提前致谢,

答案1

pfiles <pid>可以列出可执行文件的完整路径。

例子:

摘录自UNIX95=1 ps -efo pid,comm

 1666 cimprovagt

现在让我们运行pfiles 1666

1666:                   /opt/wbem/lbin/cimprovagt
0: S_ISCHR mode:666 dev:64,3 ino:124 uid:2 gid:2 rdev:3,2
flags = O_RDONLY|O_LARGEFILE
file  = /dev/null

第一行显示可执行文件的完整路径。这对于我的目的来说已经足够了。

相关内容