Можно ли экспортировать переменную 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"

  • vsftpd доступ к /srv/www/domain.com/somedir
  • Плавная прокрутка - откуда она взялась?
  • Могу ли я использовать сценарии инициализации SysV для systemd?
  • Ubuntu и Mint замедляют хост, быстро на VM
  • На сайте Ubuntu 12.04 особо не работает сайт
  • Citrix Receiver на Ubuntu падает, и я не могу его убить, придется жестко перезагрузить
  • Почему «процесс backporting не учитывает выпуски в потоке»?
  • Диск появляется ОК, будет читать / записывать в LiveCD, не загружаться, останавливается при initramfs / busybox
  • Как изменить каталоги ярлыков в файлах?
  • Почему скомпилированные программы создают копию с ~?
  • Создание пользователя linux с ограниченными привилегиями для ssh-туннелирования
  • Interesting Posts

    Символ глобуса внутри переменной расширяется в bash, но не в zsh

    Есть ли способ загрузить файл 32-разрядного файла Google Chrome для Ubuntu?

    Переключитесь на TWM в Fedora 20

    ifconfig не показывает измененный IP-адрес

    Как удалить каталог символьных ссылок ссылки плюс символическая ссылка?

    Используя инструмент командной строки cURL на Mac, как можно получить данные запаса, которые возвращаются * без * запятых?

    Удалить родительскую папку, сохраняющую все содержимое

    Linux mint 18 Ошибка 64-разрядного сеанса

    Как сопоставить Caps Lock как составной ключ с помощью Xmodmap портативно и идемпотентно?

    Модуль scsi_wait_scan не найден в CentOS kernel-ml вызывает панику ядра при загрузке

    тайм-аут

    Задайте название динамического окна на основе ввода команды

    Dell Workstation t7910 и FreeBSD

    Могу ли я использовать команду find для передачи аргументов perl?

    Почему «ping -l» не работает, когда работает ping?

    Linux и Unix - лучшая ОС в мире.