로그인 후 데스크톱 프로세스에서 환경 변수 설정

로그인 후 데스크톱 프로세스에서 환경 변수 설정

모든 프로세스에 상속되도록 환경 변수를 설정할 수 있습니다 ~/.profile. 이는 데스크톱 환경(예: gnome-shell)이 로그인 시 이 파일을 실행하기 때문에 작동합니다. 그런 다음 gnome-shell은 자체 환경 변수를 업데이트합니다. 모든 프로세스(firefox, xterm, emacs)는 gnome-shell을 조상으로 갖고 있으므로 이러한 환경 변수를 상속합니다.

로그인 후 이 프로세스(gnome-shell)에서 환경 변수를 업데이트하는 방법이 있습니까? 나는 다음과 같은 것을 상상한다

$ xdg-set FOO=BAR

그런 다음 새 터미널에서 즉시 볼 수 있습니다

$ echo $FOO
BAR

답변1

환경은 명령줄 인수와 유사한 방식으로 새 프로세스에 전달됩니다. 환경은 새 프로세스의 주소 공간에 복사됩니다. "참조로" 전달되지 않으므로 상위 프로세스 환경에 대한 일부 변경 사항이 하위 프로세스에 반영되지 않습니다.

이는 프로세스 자체를 조작하고 프로세스가 셸에서 변수를 설정하는 등 그렇게 할 수 있는 방법을 제공하는 경우에만 프로세스 환경을 변경할 수 있음을 의미합니다. 이러한 환경 변화는 일반적으로 프로세스가 생성될 수 있는 모든 하위 프로세스에 반영됩니다.

관련 정보