"screen" 호출 전후의 "env"에 차이가 있음을 발견했습니다. 호출되는 내용(환경 변수 설정을 위해)에 대한 추가 설명이 있습니까?
"man screen"에 대한 빠른 검색에서 명확한 설명을 볼 수 없습니다.
이 주제에 대한 일부 Google 검색어:
http://alan.lamielle.net/2009/03/09/environment-variables-and-gnu-screen
좀 더 구체적인 하위 질문은 일반 로그인과 비교하여 스크린 세션에서 인스턴스화되지 않은 것은 무엇입니까?
답변1
프로세스는 상위 프로세스로부터 환경 변수를 상속받습니다. 즉, 처음 호출될 때 screen
(새 프로세스 생성) 상위 프로세스의 모든 환경 변수 복사본을 갖게 됩니다. 이제 , , 및 screen
와 같은 일부 변수를 조정/생성합니다 . 환경 변수를 사용/조정하거나 제거할 수도 있습니다.COLUMNS
LINES
TERM
TERMCAP
WINDOW
STY
screenrc
setenv
unsetenv
일부 시스템에서는 screen
업데이트를 위한 setuid 또는 setgidutmp
그리고wtmp
; 그러면 시작 시 환경에서 더 많은 변수가 제거됩니다 screen
.LD_LIBRARY_PATH
기존 세션에 연결하는 경우 프로세스가 이미 존재하고 자체 환경 변수(이전에 프로세스를 시작한 시점부터)가 있으므로 screen
환경 변수는 복사되지 않습니다 . screen
즉, 변경한 환경 변수는 이전 환경 변수가 있는 상위 프로세스에서 복사되기 때문에 화면에서 시작된 프로세스에 표시되지 않습니다.