Como as ferramentas do UNIX são criadas com transparência em mente, você pode encontrar a resposta com o ajuda de grep
. Não importa se você está trabalhando com um sistema operacional completo ou com um contêiner (o mais recente significa apenas que você pode precisar executar algumas etapas adicionais para instalar as ferramentas necessárias para que as coisas se tornem transparentes).
Verifique se você tem grep
instalado no seu sistema operacional e execute sudo grep -R "/etc/environment" /etc/*
. Isso irá procurar todos os scripts e configurações do sistema para ver quais usam esse arquivo. Em uma caixa padrão vagabundo do ubuntu / xenial64, os scripts e configurações que usam este arquivo estão principalmente em /etc/init.d/
/etc/pam.d/
e /etc/rc.*.d/
.
As seguintes configurações são como as variáveis em /etc/environment
são definidas no meu shell:
/etc/pam.d/login
/etc/pam.d/su
/etc/pam.d/sshd
De man pam_env
:
The pam_env PAM module allows the (un)setting of environment variables. ...
This module can also parse a file with simple KEY=VAL pairs on separate lines (/etc/environment by default). You can change the default file to parse, with the envfile flag and turn it on or off by setting the readenv flag to 1 or 0 respectively. ...
Faça uma pesquisa semelhante no seu contêiner docker. Você pode verificar se o seu contêiner usa pam_env.so
.
O mais provável é que a melhor solução seja fazer com que seu processo de inicialização crie variáveis de ambiente a partir de /etc/environment
, mas esse aconselhamento é dado sem entender o que você está construindo. Os usos em '/etc/rc*.d/ podem ser bons exemplos de como fazer isso.
A maioria das pessoas segue o conselho do @ ben-njeri e define variáveis nos arquivos de configuração padrão do bash shell .