Gnu-Screen

“螢幕”如何影響環境變數?

  • July 24, 2012

我注意到在“螢幕”呼叫之前和之後的“env”有所不同,對於呼叫的內容是否有任何額外的清晰度(用於設置環境變數)?

我在“人屏”上的快速搜尋中看不到任何明確的解釋

關於該主題的一些Google查詢:

http://alan.lamielle.net/2009/03/09/environment-variables-and-gnu-screen

https://superuser.com/questions/105954/updating-screen-session-environment-variables-to-reflect-new-graphical-login

我想一個更具體的子問題是,與正常登錄相比,螢幕會話中沒有實例化什麼?

程序從父程序繼承環境變數,這意味著您第一次呼叫screen(創建一個新程序)時,它擁有父程序所有環境變數的副本。現在screen調整/創建一些變數,如COLUMNS, LINES, TERM, TERMCAP,WINDOWSTY. 您還可以screenrc使用setenv/調整或刪除環境變數unsetenv

在某些系統上,screensetuid 或 setgid 是為了更新utmpwtmp;然後在啟動時從環境中刪除更多變數screen,例如LD_LIBRARY_PATH.

如果您附加到現有screen會話,則不會複製您的環境變數,因為該screen程序已經存在並且擁有自己的環境變數(從您之前啟動該程序的時間開始)。這意味著您更改的環境變數在 screen 啟動的程序中不可見,因為它們是從具有舊環境變數的父程序複製的。

引用自:https://unix.stackexchange.com/questions/43729