Расположение для размещения службы 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, и я знаю, что файл должен быть доступен при каждом запуске / перезапуске службы. [тысяча сто двадцать-дв]

0
задан 19 January 2018 в 23:58

1 ответ

Кто-то еще ответил на этот вопрос здесь, в Unix & amp; Сайт Linux Stack Exchange .

(отрывок ниже)


Системным людям не нравятся файлы среды.

Так что нет ни одного.

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

Собственный механизм systemd - это, в конце концов, сам файл сервисного модуля, в котором переменные среды устанавливаются с помощью клавиш Environment=. С их точки зрения, настройка среды службы с помощью определяемых администратором или машинно-зависимых переменных - это вопрос удаления фрагментов .conf файлов для блоков, которые устанавливают другие переменные среды с помощью дополнительных Environment= ключей.

(Но, честно говоря, нет смысла пытаться динамически преобразовать материал в файл, который подходит для EnvironmentFile=. [& hellip;] Также /etc/sysconfig - это Redhatism, который действительно должен идти далеко, вся концепция ошибочна. Добавление нового /run/sysconfig/, безусловно, делает это еще хуже.)

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

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

Bonus content

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

0
ответ дан 19 January 2018 в 23:58

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

Похожие вопросы: