Иметь выскочку среды чтения из /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".