Defina variáveis ​​de ambiente no processo da área de trabalho após o login

Defina variáveis ​​de ambiente no processo da área de trabalho após o login

Posso definir variáveis ​​de ambiente para serem herdadas por todos os processos no ~/.profile. Isso funciona porque o ambiente de desktop (por exemplo, gnome-shell) executa este arquivo no login. O gnome-shell então atualiza suas próprias variáveis ​​de ambiente. Como cada processo (firefox, xterm, emacs) tem o gnome-shell como ancestral, eles herdam essas variáveis ​​de ambiente.

Existe uma maneira de atualizar as variáveis ​​de ambiente neste processo (gnome-shell) após o login? Eu imagino algo como

$ xdg-set FOO=BAR

então, em um novo terminal, você poderá ver imediatamente

$ echo $FOO
BAR

Responder1

O ambiente é passado para um novo processo de maneira semelhante aos argumentos da linha de comando: eles são copiados para o espaço de endereço do novo processo. Eles não são passados ​​"por referência", portanto, uma mudança no ambiente de algum processo ancestral não é refletida nos processos descendentes.

Isto significa que você só pode alterar o ambiente de um processo manipulando o próprio processo, e somente se o processo oferecer um meio para fazer isso, por exemplo, definindo uma variável em um shell. Essa mudança no ambiente normalmente se reflete em quaisquer processos filhos que o processo possa gerar.

informação relacionada