Conheço /etc/profile e /etc/environment, mas gostaria de definir uma variável ambiental global após a inicialização e o login. Por global, quero dizer uma variável de ambiente que pode ser acessada por qualquer programa (em execução no usuário atual).
Basicamente, em qualquer ponto, digamos 10 minutos após a inicialização, eu gostaria de poder executar um script que definisse algumas variáveis de ambiente globais. Isso é possível?
Fundo
Estou tendo alguns problemas com o gpg-agent no Ubuntu 14.04. Os programas usam variáveis ambientais para se conectarem ao processo gpg-agent. Meu problema é com várias instâncias do gpg-agent em execução (apenas uma delas tem suporte a ssh ativado). Eu gostaria de poder eliminar todas as instâncias existentes do gpg-agent e iniciar uma nova com suporte a ssh. Porém, para que outros programas possam acessar a nova instância, preciso que as variáveis ambientais sejam globalizadas. Fazer isso durante a inicialização não funcionou para mim, pois o outro agente gpg parece iniciar depois do meu, substituindo as variáveis ambientais.
Responder1
Às vezes enfrento um problema intimamente relacionado. Eu tenho ssh-agent
uma máquina rodando sob a égide de sua área de trabalho gráfica, mas acesso a mesma máquina remotamente. Esse shell não possui variáveis de ambiente.
Para isso eu uso um script que procura /proc
processos Bash e vasculha suas /proc/<pid>/environ
entradas, procurando por SSH_AGENT_PID
variáveis SSH_AGENT_SOCK
. Em seguida, ele recria essas entradas na sintaxe do shell, para que todo esse "script de raspagem de ambiente" possa ser eval
editado no novo shell.
Basicamente, "procure /proc
o que outros Bash-es estão usando para suas variáveis de agente e reproduza isso nesta sessão".