Иметь выскочку среды чтения из /etc/environment для службы

Каков наилучший способ предоставления переменных среды, определенных в /etc/environment на выскочку службы?

Я думаю, просто поставляя их . в разделе сценариев не работает, потому что сценарии выполняются sh который будет нуждаться в дополнительном export перед каждым определением...

3 ответа

Я наконец получил ответ на #upstart IRC канал. В какой-то момент выскочка получит надлежащую поддержку PAM и, таким образом, прочитает /etc/environment сам. До тех пор уловка состоит в том, чтобы выполнить команду с su. su использует PAM и настроит соответствующую среду. Пример:

script 
    exec su root -c /usr/sbin/job_needing_envs
end script

Я склонен использовать eval $(cat /etc/environment | sed 's/^/export /')

Это занимает каждую строку в /etc/environment, готовит exportи оценивает это:

script
exec /bin/bash <<'EOT'
  eval $(cat /etc/environment | sed 's/^/export /')
  do_what_you_need_to
EOT
end script

Добавьте это к вашему сценарию:

. /etc/environment
export VAR1 VAR2 VAR3

где необходимые переменные указываются вместо заполнителей стиля "VAR1".

Другие вопросы по тегам