экспортировать все переменные из среды EnvironmentFiles

Я хотел бы экспортировать все переменные, используемые определенной службой systemd, и указывается в его файле с помощью EnvironmentFile .

Например, foo.service :

 [Service] ... EnvronmentFile=/foo.env EnvronmentFile=/bar.env 

foo.env :

 a=1 #b=2 c=3 

Поэтому я думал добавить к моему bashrc что-то вроде

 set -a grep EnvironmentFile /etc/systemd/system/foo.service | grep -v '^ *#' | cut -d'=' -f2 | xargs -I {} bash -c 'source {};' set +a 

как указано в этом ответе .

Есть ли более элегантное решение?

  • Как я могу систематизировать цели для остановки служб от других целей?
  • Трассировка целевого исполнения systemd
  • Как я могу запустить системный блок при приостановке до отключения сети?
  • Как использовать SystemD для запуска игрового сервера 24/7?
  • Запуск службы до входа пользователя в систему
  • Как точно определить, почему Systemd входит в аварийный режим
  • Настройка заказа системных служб
  • Как изменить временные ограничения на сценарии shutdown systemd?
  • One Solution collect form web for “экспортировать все переменные из среды EnvironmentFiles”

    Это не сработает, потому что вы выполняете новую оболочку bash для создания «источника»,

    Пытаться:

     load_env() { local files=( $(egrep '^[ ]*EnvironmentFile' "$1" ) ) local f set -a for f in "${files[@]}" do . "${f##*=}" # this expression delete the EnvironmentFile= part done set +a } load_env /etc/systemd/system/foo.service 
    Interesting Posts

    Какая команда будет генерировать средние линии в минуту?

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

    Изменение информации о пользователе в командной строке

    удалять содержимое каталога элегантным способом

    DD-WRT: dhcp6c не получает новый адрес для ppp0

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

    добавлено имя пользователя, пользователь не может записать в домашний каталог

    Как настроить зашифрованный файл подкачки в Linux?

    Сортировка вывода «find»?

    Отображать временную метку в dd / mm / yyyy_hh: mm: ss: ms в Unix или Linux

    Разрешить пользователям, не являющимся root, монтировать кеперизованную долю CIFS только в своем доме

    centos 7 двойной ботинок с окнами 8.1

    Обмен на видеопамяти в виртуальной машине

    Сопоставьте символ с определенным ключом

    Bash: перемещать файлы определенного шаблона

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