如何知道正在運行的進程的絕對路徑?在Solaris上

如何知道正在運行的進程的絕對路徑?在Solaris上

這是在Linux上查看進程路徑的命令

ps -auxwe | grep 24466    ( 24466 is only example )

但請建議是否可以在Solaris上查看正在運行的進程的路徑

如果是,Solaris 的 ps 語法是什麼?

答案1

您可以在Solaris 和Linux 中使用pwdx。

密碼<pid_number>

例子:

pwdx $$
25711:  /export/home/pippo

答案2

如何知道正在運行的進程的絕對路徑?

如果「絕對路徑」指的是正在運行的二進位檔案的完整路徑,則這適用於我安裝的 Solaris 11 副本:

pmap PID | grep -v ':' | head 1 | awk '{ print $4 }'

替換PID為您感興趣的進程的進程 ID。

pmap發出進程的位址映射,包括映射的來源檔案的完整路徑。這包括實際的二進位文件,這是第一個對應輸出的行。輸出的第一行包含進程 ID 和進程參數。請注意,進程參數不足以完全識別正在運行的可執行檔的完整路徑。實際位址空間映射的前幾行是來自實際執行二進位檔案的映射,列出了二進位檔案的完整絕對路徑。

不幸的是,您需要對流程圖進行讀取存取才能獲取該資訊。如果沒有這種訪問權限,我不知道有什麼方法可以獲得您正在尋找的東西。

編輯:Solaris 11 上也有/proc/[PID]/path/a.out,它是實際二進位檔案的軟連結:

在bash中:

bash-4.1$ readlink /proc/$$/path/a.out
/usr/bin/bash

請注意,這/proc/$$/path/a.out/proc/self/path/a.out

bash-4.1$ readlink /proc/self/path/a.out
/usr/bin/readlink

不幸的是,如果您無權通過 訪問流程圖pmap,您可能也無法訪問/proc/[PID]/path/a.out,因為我的 Solaris 11 安裝的權限/proc/[PID]/path均為 500 - 只有所有者和 root 對該目錄具有讀取和執行權限。

答案3

/usr/ucb/ps auxwww| | /usr/ucb/ps grep 6851 在 SunOS servername01 5.10 Generic_147440-25 sun4u sparc SUNW、Sun-Fire-V490 上為我工作

相關內容