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

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

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

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

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

  • Добавление KDE в Ubuntu
  • Некоторые пакеты не могут быть установлены с использованием multi-arch (возьмите два)
  • nmcli ничего не показывает
  • объяснение команды вывода «ifconfig ppp0»
  • Как Ubuntu сохраняет постоянные разрешения доступа для точек монтирования автоматически установленных пользователем устройств?
  • Как установить Ubuntu в систему, где уже есть Mint и Windows 7?
  • Будет ли загрузочный ubuntu в режиме восстановления использовать раскладку клавиатуры по умолчанию?
  • Как установить команду grub для других дистрибутивов на Ubuntu
  • 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"

    Interesting Posts

    Принимать локальную шахматную игру

    эхо-строки файла – но не более N символов в строке

    Переименуйте все файлы в папке, чтобы удалить текст между двумя одинаковыми символами

    Какие файлы в / tmp начинаются с «qipc»?

    Черный экран при загрузке с изображения .VDI

    Как я могу идентифицировать процессы, которые используют сетевые средства, и их можно убить?

    Demuxer: не удалось открыть

    Ускоритель загрузки консоли, который одновременно загружает * несколько файлов

    Сценарий RedHat init.d не запускается после службы после остановки

    TP-Link TL-WR1043ND как немая точка доступа

    Яркость экрана в Debian после сна / спящего режима на Macbook с графической картой Intel

    MATE – Скрыть стрелку на значке панели панели

    Сценарии оболочки, связанные с трубой: прерывание ловушки одного скрипта

    Проблемы с установкой программного обеспечения с помощью apt-get

    Каковы переменные $ remote_fs и $ syslog в заголовке SysVinit LSB?

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