Como o 'screen' afeta variáveis de ambiente?

7

Eu notei uma diferença em 'env' antes e depois de uma chamada de 'tela', há alguma clareza adicional sobre o que é chamado (para definir variáveis de ambiente)?

Não consegui ver nenhuma explicação clara de uma pesquisa rápida em "man screen"

Algumas pesquisas no Google sobre o tópico:

link

link

Eu acho que uma sub-questão mais específica seria, o que não é instanciado em uma sessão de tela vs. a de um log-in normal?

    
por Kevin Lee 23.07.2012 / 05:47

1 resposta

10

Um processo herda as variáveis de ambiente do pai, isto significa que a primeira vez que você chama screen (cria um novo), ele tem uma cópia de todas as variáveis de ambiente do processo pai. Agora screen ajusta / cria algumas variáveis como COLUMNS , LINES , TERM , TERMCAP , WINDOW e STY . Você também pode ajustar ou excluir variáveis de ambiente em screenrc com setenv / unsetenv .

Em alguns sistemas, screen é setuid ou setgid para atualizar utmp e wtmp ; então, mais algumas variáveis são removidas do ambiente quando screen é iniciado, como LD_LIBRARY_PATH .

Se você anexar a uma sessão screen existente, suas variáveis de ambiente não serão copiadas, pois o processo screen já existe e possui suas próprias variáveis de ambiente (desde quando você iniciou o processo anteriormente). Isso significa que suas variáveis de ambiente alteradas não estarão visíveis nos processos iniciados pela tela, pois são copiados do processo pai que possui as variáveis de ambiente antigas.

    
por 23.07.2012 / 06:11