Tem o ambiente de leitura do ambiente / etc / upstart para um serviço

17

Qual é a melhor maneira de fornecer as variáveis de ambiente definidas em /etc/environment para um serviço upstart ?

Eu acho que o simples uso de . em uma seção de script não funciona, porque os scripts são executados por sh , o que precisaria de um export adicional na frente de cada definição ...

    
por Nikratio 01.04.2010 / 23:22

3 respostas

16

Eu finalmente recebi uma resposta no canal #upstart IRC. Em algum momento, o upstart terá suporte adequado ao PAM e, portanto, lerá /etc/environment . Até lá, o truque é executar o comando com su. su usa o PAM e configurará o ambiente adequado. Exemplo:

script 
    exec su root -c /usr/sbin/job_needing_envs
end script
    
por 05.04.2010 / 15:43
3

Eu costumo usar eval $(cat /etc/environment | sed 's/^/export /')

Leva cada linha em /etc/environment , acrescenta export e avalia:

script
exec /bin/bash <<'EOT'
  eval $(cat /etc/environment | sed 's/^/export /')
  do_what_you_need_to
EOT
end script
    
por 26.08.2015 / 21:52
1

Adicione isso ao seu script:

. /etc/environment
export VAR1 VAR2 VAR3

onde as variáveis necessárias são especificadas no lugar dos espaços reservados de estilo "VAR1".

    
por 02.04.2010 / 00:11

Tags