我正在检查在 vnc 会话内启动的 xterm 的 bash 进程的环境变量。
如果我通过运行 env 或 来检查 bash 会话本身的环境变量cat /proc/pid/environ | strings
,它会显示我们执行 su 或 ssh 时通常设置的所有环境变量,即来自 /etc/profile 和 .bashrc 的环境变量。但是当我cat /proc/pid/environ | strings
在腻子会话中进行操作时,它显示了完全不同的变量。
抛开为什么只设置那些特定的变量不谈,我想知道为什么当从不同的会话(如双缝实验)检查时,同一过程的环境会产生不同的结果。我知道 proc 不是真正的文件系统。但是当我查询它时到底发生了什么,所以 proc 不是检查远程进程环境的可靠方法吗?
我用手机写下了这个问题。所以,我没有任何示例输出可显示。但是,我希望你能明白我的问题。
答案1
这是我为测试所做的:
$export test=one
$vim test1
pid = 1200,使用 CTRL-Z 停止进程
$cat /proc/1200/environ | strings
test=one
现在进行第二个过程
$test=two
$vim test2
pid = 1201,使用 CTRL-Z 停止该进程
$cat /proc/1201/environ | strings
test=two
用户可能在运行程序之前更改了环境属性。