Mac-Osx
在“ps auxwww”輸出中獲取執行檔的完整路徑
考慮輸出中的以下幾行
"ps auxwww"
:USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND root 4262 0.0 0,1 76592 1104 s005 Ss 10:02am 0:00.03 login -pf yo yo 4263 0.0 0,0 75964 956 s005 S 10:02am 0:00.03 -bash
如何強制ps將 COMMAND 列中的所有命令擴展為其完全限定的路徑名?我希望登錄被解析到 /usr/bin/login 和 Bash 到 /bin/bash。
Mac OS X 中是否有相當於procfs的功能?也就是說——是否有基於文件的機制來輕鬆獲取程序資訊?
試試這個:
ps ax -o pid,cmd
您可以根據需要重新格式化它(閱讀手冊頁了解詳細資訊)。
最後,我認為 ps(甚至是 cat /proc/*/cmdline)會以啟動方式報告命令。因此,如果沒有給出完整路徑,它將僅顯示為“command”而不是“/path/to/command”。
首先,程序可以更改 報告的標題
ps
,因此它本身不是很可靠。您可以使用“e”標誌嘗試環境變數。ps auxwwwe
其中應該有一個內置的 ‘_’ 變數,如此處所述。
對於作為 shell 的子程序執行的每個命令,sh 將此變數設置為執行檔的完整路徑名,並將此值通過環境傳遞給該子程序。
這對於
sh
BSD 和 Linux 一樣適用。我相信這不能被使用者覆蓋。但是,它的可用性可能取決於使用者選擇的外殼,它非常討厭,而且您的里程可能會有所不同。