Ответы:
Я наконец получил ответ на канале #upstart
IRC. В какой-то момент выскочка получит надлежащую поддержку PAM и, таким образом, прочитает /etc/environment
сама себя. До тех пор уловка состоит в том, чтобы выполнить команду с su. su
использует PAM и настроит соответствующую среду. Пример:
script
exec su root -c /usr/sbin/job_needing_envs
end script
su: must be run from a terminal
Я склонен использовать 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".
/etc/environment
стал определять все необходимые переменные. Оставьте это как статический файл. В моей системе я мог найти только несколько сценариев, которые все равно его используют. Создайте файл с именем что-то вроде, /etc/environment.local
и поместите туда свои переменные и экспорты и поставьте этот файл. Тогда вам нужно только сохранить этот один файл.