Можно ли экспортировать переменную env через Upstart?

Мне нужно экспортировать переменную FOO=stringhere чтобы системные процессы могли ее использовать. И место, которое я хотел бы сделать, – это работа Upstart.

К сожалению, я попытался в соответствии с руководством Upstart сделать env FOO=stringhere http://upstart.ubuntu.com/cookbook/#environment-variables

Но после загрузки системы echo $FOO ничего не возвращает.

Я пытаюсь сделать что-то невозможное, или есть какие-то ошибки, которые я должен знать?

3 Solutions collect form web for “Можно ли экспортировать переменную env через Upstart?”

Как говорится на странице,

Upstart позволяет вам устанавливать переменные среды, которые будут доступны для заданий, в которых заданы файлы конфигурации работы, в которых они определены .

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

Если вы хотите проверить, знает ли демон о выбранной вами переменной, вы можете проверить это, временно изменив свой сценарий запуска и добавив что-то вроде logger "=============== The variable FOO is set to $FOO =====================" Затем вы должны увидеть информацию, зарегистрированную во время загрузки (смотрите в /var/log/messages например).

В вашем примере эта переменная может использоваться в том же файле.

Примечание из кулинарной книги с выскочкой.

Обратите внимание: файл конфигурации задания не имеет доступа к переменным среды пользователя, даже не к суперпользователю. Это невозможно, поскольку все созданные рабочие процессы – это дети init, которые не имеют среды пользователя.

Дальнейшее объяснение от кулинарной книги с выскочкой.

Допустим, вы пишете env TESTING=123 в вашем файле * .conf, тогда вы можете использовать эту переменную в своем блоке сценария ниже (тот, который вы использовали)

 script # prints "TESTING='123'" to system log logger -t $0 "TESTING='$TESTING'" end script 

Или немного более сложный подход позволит вам использовать переменную в заданиях, которые «прослушивают» вашу работу:

 # /etc/init/A.conf start on wibble export foo # /etc/init/B.conf start on A script logger "value of foo is '$foo'" end script 

То, что вы хотите выполнить, лучше подходит для /etc/profile который является source для модулей входа.

export foo="String here"

  • Сервер Ubuntu - доступ к веб-серверу с другого компьютера локальной сети, настройка SSH или FTP, закрытие портов?
  • Ошибка Ubuntu 14 - nouveau
  • Компиляция и сборка с использованием make
  • Должен ли я изменить порядок логических томов до изменения размера?
  • «Возобновление» Ubuntu после смерти батареи
  • Схема разделения для хоста виртуальной машины
  • Добавить репозиторий Ubuntu в Debian
  • XEN Storage Repository имеет тип опции = lvm missing (XCP)
  • Как автозапустить hostapd
  • Почему моя камера не появляется в / dev, хотя она работает в dmesg? (Возможная регрессия Ubuntu.)
  • Изменить documentroot на Apache 2.4
  • Могу ли я заставить SSMTP автоматически устанавливать заголовок «To:»?
  • Linux и Unix - лучшая ОС в мире.