Linux

如何知道正在執行的程序的絕對路徑?在 solaris 上

  • July 15, 2017

這是在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.outSolaris 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 對目錄具有讀取和執行權限.

引用自:https://serverfault.com/questions/672463