Linux
如何知道正在執行的程序的絕對路徑?在 solaris 上
這是在Linux上查看程序路徑的命令
ps -auxwe | grep 24466 ( 24466 is only example )
但請建議是否可以在 Solaris 上查看執行程序的路徑
如果是,Solaris 的 ps 語法是什麼?
您可以在 solaris 和 linux 中使用 pwdx。
密碼
<pid_number>
例子:
pwdx $$ 25711: /export/home/pippo
如何知道正在執行的程序的絕對路徑?
如果“絕對路徑”是指正在執行的二進製文件的完整路徑,這適用於我安裝的 Solaris 11 副本:
pmap PID | grep -v ':' | head 1 | awk '{ print $4 }'
替換
PID
為您感興趣的程序的程序 ID。
pmap
發出程序的地址映射,包括映射的源文件的完整路徑。這包括實際的二進製文件,它是輸出的第一個映射行。輸出的第一行包含程序 ID 和程序參數。請注意,程序參數不足以完全辨識正在執行的執行檔的完整路徑。實際地址空間映射的前幾行是來自實際執行二進製文件的映射,列出了二進製文件的完整絕對路徑。不幸的是,您需要對流程圖具有讀取權限才能獲取該資訊。如果沒有該訪問權限,我不知道有任何方法可以獲取您要查找的內容。
編輯:
/proc/[PID]/path/a.out
Solaris 11 上也有,它是實際二進製文件的軟連結:在 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 對目錄具有讀取和執行權限.