如何取得正在運行的 Linux 進程的以下資訊:
- 外殼環境變數
- 工作目錄
- 命令列選項
答案1
您可以從以下位置獲取此信息/行程文件系統,它儲存有關正在運行的進程的資訊。
cat /proc/<pid>/environ
cd /proc/<pid>/cwd; pwd -P
cat /proc/<pid>/cmdline
答案2
如果您按照@atype的建議輸出環境,您將獲得所有環境變數及其值,它們不帶分隔符號連接在一起。
為了獲得更好的輸出,請使用
$ xargs -0 -L 1 echo < /proc/21645/environ
LANG=en_US.UTF-8
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
SHELL=/bin/bash
TERM=xterm
LC_MESSAGES=en_US.UTF-8
LANGUAGE=en_US.UTF-8
(出於隱私原因,輸出被縮短)
解釋
/proc/$pid/environ 包含以 null 分隔的列表形式的環境變數。
xargs 是一個從 *STDIN 讀取任意長列表並將其元素提供給工具(在本例中為 echo)的工具,確保不超過最大命令列長度。參數「-0」將xargs 切換為使用null 作為項目分隔符號(而不是預設的空白或換行符),參數「-L 1」將項目數限制為1。 。