"화면"은 환경 변수에 어떤 영향을 미치나요?

"화면"은 환경 변수에 어떤 영향을 미치나요?

"screen" 호출 전후의 "env"에 차이가 있음을 발견했습니다. 호출되는 내용(환경 변수 설정을 위해)에 대한 추가 설명이 있습니까?

"man screen"에 대한 빠른 검색에서 명확한 설명을 볼 수 없습니다.

이 주제에 대한 일부 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

좀 더 구체적인 하위 질문은 일반 로그인과 비교하여 스크린 세션에서 인스턴스화되지 않은 것은 무엇입니까?

답변1

프로세스는 상위 프로세스로부터 환경 변수를 상속받습니다. 즉, 처음 호출될 때 screen(새 프로세스 생성) 상위 프로세스의 모든 환경 변수 복사본을 갖게 됩니다. 이제 , , 및 screen와 같은 일부 변수를 조정/생성합니다 . 환경 변수를 사용/조정하거나 제거할 수도 있습니다.COLUMNSLINESTERMTERMCAPWINDOWSTYscreenrcsetenvunsetenv

일부 시스템에서는 screen업데이트를 위한 setuid 또는 setgidutmp그리고wtmp; 그러면 시작 시 환경에서 더 많은 변수가 제거됩니다 screen.LD_LIBRARY_PATH

기존 세션에 연결하는 경우 프로세스가 이미 존재하고 자체 환경 변수(이전에 프로세스를 시작한 시점부터)가 있으므로 screen환경 변수는 복사되지 않습니다 . screen즉, 변경한 환경 변수는 이전 환경 변수가 있는 상위 프로세스에서 복사되기 때문에 화면에서 시작된 프로세스에 표시되지 않습니다.

관련 정보