Bash
當從不同的會話中看到時,同一程序在 /proc/pid/environ 中具有不同的環境變數。為什麼?
我正在檢查在 vnc 會話中啟動的 xterm 的 bash 程序的環境變數。
如果我通過執行 env 或 檢查 bash 會話本身
cat /proc/pid/environ | strings
的環境變數,它會顯示在我們執行 su 或 ssh 時通常會設置的所有環境變數,即來自 /etc/profile 和 .bashrc。但是當我cat /proc/pid/environ | strings
從膩子會話中進行操作時,它會顯示完全不同的變數。撇開為什麼只設置那些特定的變數不談,我想知道為什麼同一過程的環境在從不同的會話(如雙縫實驗)中檢查時會產生不同的結果。我知道 proc 不是真正的文件系統。但是當我查詢它時到底發生了什麼,所以 proc 不是檢查遠端程序環境的可靠方法嗎?
我用手機寫了這個問題。所以,我沒有任何範例輸出要顯示。但是,我希望你能得到我的問題。
這是我為測試所做的:
$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
使用者可能在執行程序之前更改了環境屬性。