Назад | Перейти на главную страницу

Попросите выскочку прочитать среду из / etc / environment для службы

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

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

Я наконец получил ответ на #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".