我需要什麼:當前正在運行的所有可執行檔及其完整路徑的清單。
像這樣的事情:
第1234章 第4567章
使用UNIX95= ps -exo pid,comm
我可以獲得一個包含 PID 和命令的列表,如下所示
11146 /opt/wbem/lbin/cimprovagt 0 4 8 根 IOTreeModule 分段閱讀_第 8338 章 16684 postgres:sfmdb evweb [本地] 空閒 第2518章 /usr/sbin/stm/uut/bin/工具/監視器/WbemWrapperMonitor 第2264章 /usr/sbin/psb/bin/diagtxd 8340-sh 7772 sshd: root@pts/0 8333 sshd: root@pts/1 第7777章
這是我設法使用的最接近的結果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
第一行顯示可執行檔的完整路徑。這對於我的目的來說已經足夠了。