Расположение для размещения службы 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/ конечно, делает это еще хуже.)

Я, наверное, никогда не должен был добавлять EnvironmentFile= на первом месте. Упаковщики неправильно понимают, что файлы модулей подлежат административной настройке и должны рассматриваться как таковые, и что разделение конфигурации файлов модулей на отдельные EnvironmentFiles= это действительно бессмысленная игра с ненужной косвенностью.
- Леннарт Поэттеринг (2015-12-09). Запрос относительно "EnvironmentFile". Systemd-Devel.

Использование EnvironmentFile= это почти всегда плохая идея, и мы, вероятно, никогда бы не добавили ее, так как она предлагает упаковщикам вновь представить /etc/default/ а также /etc/sysconfig/ Безумие мы пытаемся устранить.
- Леннарт Поэттеринг (2015-07-22). пожалуйста, рассмотрите наличие переменных для всего файла модуля. системная ошибка #618. GitHub.

Бонусный контент

В мире daemontools у нас есть каталоги среды, конечно, читайте envdir / s6-envdir команда. Хотя это не стандарт и не требование daemontools, соглашение, которое можно использовать и которое согласуется с некоторыми инструментами, заключается в том, что каталог среды называется env и живет в каталоге услуг рядом с run программа и прочее.

Другие вопросы по тегам