在Unix上,正在运行的进程的环境变量?

分享于 

2分钟阅读

互联网

  繁體

问题:

在Windows上,我可以使用ProcessExplorer之类的工具来选择每个环境变量的特定进程和视图值。

在Unix上,如何实现相同的功能?


答案1:


cat /proc/<pid>/environ



如果想获得给定运行可执行文件的pid,可以在许多其他可能情况下使用pidof


AlberT$ pidof sshd 


30690 6512 



编辑:

解决方案如下:


tr '' 'n' < /proc/<pid>/environ




答案2:


ps -p <PID> -wwwe



或者


ps -p <PID> -wwwe



在Solaris上


/usr/ucb/ps -wwwe <PID>




回答3:

首先,环境文件包含进程生成时所看到的环境,这意味着在/proc:中,可能对进程环境所做的更改都不可见


$ cat /proc/$$/environ | wc -c


320


$ bash


$ cat /proc/$$/environ | wc -c


1270


$ 



另外,在较旧的内核中,环境文件的内容仅限于页面大小(4K ):


$ cat /proc/$$/environ | wc -c


4096


$ env | wc -c


10343


$ 




回答4:

正确使用BSD选项来执行(至少在Linux上):

 
ps e$pid



或者


ps auxe #for all processes




回答5:


cat /proc/PID/environ



将PID替换为要查看的进程的PID。正在运行的进程的每个信息都在/proc/PID/目录中

例子:cat /proc/32512/environ



PROC  envi  环境  VAR  UNIX  variable