Crie uma variável ambiental global após o boot

1

Eu sei sobre / etc / profile e / etc / environment, mas gostaria de definir uma variável ambiental global após o boot 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 definiria algumas variáveis de ambiente global. Isso é possível?

Plano de 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 de gpg-agent em execução (apenas uma delas tem suporte a ssh ativado). Eu gostaria de poder matar todas as instâncias existentes do gpg-agent e iniciar uma nova com o suporte ssh. No entanto, para que outros programas possam acessar a nova instância, preciso que as variáveis ambientais sejam globais. Fazê-lo durante a inicialização não funcionou para mim, pois o outro agente-gpg parece começar depois do meu, substituindo as variáveis ambientais.

    
por Daniel 06.05.2014 / 21:49

1 resposta

0

Às vezes, enfrento um problema estreitamente relacionado. Eu tenho um ssh-agent rodando em uma máquina sob o guarda-chuva de sua área de trabalho gráfica, mas eu acesso a mesma máquina remotamente. Esse shell não tem as variáveis de ambiente.

Para isso, eu uso um script que examina /proc para processos Bash, e raspa suas entradas /proc/<pid>/environ , procurando por SSH_AGENT_PID e SSH_AGENT_SOCK variables. Em seguida, ele recria essas entradas na sintaxe do shell, portanto, todo esse "script de raspagem de env" pode ser eval -ed no novo shell.

Basicamente, "passe por /proc para encontrar o que outros Bash-es estão usando para suas variáveis de agente e reproduza isso nesta sessão".

    
por 04.08.2017 / 10:55