Расположение для размещения службы systemd EnvironmentFile при создании пакета debian
Я сейчас переписываю upstart
рабочие места, чтобы использовать systemd
и я хотел знать:
где находится место по умолчанию для EnvironmentFile
?
Это может потенциально пойти в /etc/environment
Это может быть со всеми другими служебными файлами в /etc/systemd/service
, /run/systemd/system
или же /lib/systemd/system
но я не вижу другого EnvironmentFile
в этих местах для любого другого Service
,
Я также обсудил /etc/default/
или же /etc/<PACKAGE_NAME>
Не существует документально подтвержденного "обычного" места для его размещения. Многие из примеров, которые я видел, похоже, используют /tmp/<FILE_NAME>
что не имеет смысла как /tmp
стирается при перезагрузке, и эти файлы должны сохраняться, чтобы на них можно было ссылаться всякий раз, когда Service
запускается или перезапускается.
Справочная информация: я генерирую EnvironmentFile
во время предустановки (со сценариями сопровождающего) до установки пакета debian, и я знаю, что файл должен быть доступен каждый раз, когда служба запускается / перезапускается.
1 ответ
Кто-то еще ответил на этот вопрос здесь, на сайте Unix & Linux Stack Exchange.
(Выдержка ниже)
Системные люди не любят файлы окружения.
Так что нет ни одного.
На протяжении многих лет некоторые из системных пользователей сообщают, что файлы окружения - это механизм, который они никогда не должны были бы давать systemd.
В конце концов, собственный механизм systemd- это сам файл сервисного модуля, в котором переменные среды установлены с Environment=
ключи. По их мнению, настройка среды службы с помощью определяемых администратором или машинно-зависимых переменных является вопросом удаления фрагмента. .conf
файлы для модулей, которые устанавливают другие переменные среды с дальнейшим Environment=
ключи.
(Но, честно говоря, нет смысла пытаться динамически преобразовать материал в файл, который подходит для EnvironmentFile=
, […] Также /etc/sysconfig
Редхатизм, который действительно должен исчезнуть, вся концепция ошибочна. Добавление нового /run/sysconfig/
конечно, делает это еще хуже.)
Я, наверное, никогда не должен был добавлять- Леннарт Поэттеринг (2015-12-09). Запрос относительно "EnvironmentFile". Systemd-Devel.EnvironmentFile=
на первом месте. Упаковщики неправильно понимают, что файлы модулей подлежат административной настройке и должны рассматриваться как таковые, и что разделение конфигурации файлов модулей на отдельныеEnvironmentFiles=
это действительно бессмысленная игра с ненужной косвенностью.
Использование- Леннарт Поэттеринг (2015-07-22). пожалуйста, рассмотрите наличие переменных для всего файла модуля. системная ошибка #618. GitHub.EnvironmentFile=
это почти всегда плохая идея, и мы, вероятно, никогда бы не добавили ее, так как она предлагает упаковщикам вновь представить/etc/default/
а также/etc/sysconfig/
Безумие мы пытаемся устранить.
Бонусный контент
В мире daemontools у нас есть каталоги среды, конечно, читайте envdir
/ s6-envdir
команда. Хотя это не стандарт и не требование daemontools, соглашение, которое можно использовать и которое согласуется с некоторыми инструментами, заключается в том, что каталог среды называется env
и живет в каталоге услуг рядом с run
программа и прочее.