В настоящее время я переписываю 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, и я знаю, что файл должен быть доступен при каждом запуске / перезапуске службы. [тысяча сто двадцать-дв]
Кто-то еще ответил на этот вопрос здесь, в Unix & amp; Сайт Linux Stack Exchange .
(отрывок ниже)
Так что нет ни одного.
Несколько человек из systemd в записи, за эти годы, говорят, что файлы окружения - это механизм, который они никогда не должны были давать systemd.
Собственный механизм systemd - это, в конце концов, сам файл сервисного модуля, в котором переменные среды устанавливаются с помощью клавиш Environment=
. С их точки зрения, настройка среды службы с помощью определяемых администратором или машинно-зависимых переменных - это вопрос удаления фрагментов .conf
файлов для блоков, которые устанавливают другие переменные среды с помощью дополнительных Environment=
ключей.
(Но, честно говоря, нет смысла пытаться динамически преобразовать материал в файл, который подходит для EnvironmentFile=
. [& hellip;] i> Также /etc/sysconfig
- это Redhatism, который действительно должен идти далеко, вся концепция ошибочна. Добавление нового /run/sysconfig/
, безусловно, делает это еще хуже.)
Я, вероятно, никогда не должен был добавлять& Mdash; Леннарт Поэттеринг (2015-12-09). Запрос относительно «EnvironmentFile» . Systemd-Devel.EnvironmentFile=
во-первых. Упаковщики неправильно понимают, что файлы юнитов подлежат административной конфигурации и должны рассматриваться как таковые, и что разделение конфигурации файлов юнитов на отдельныеEnvironmentFiles=
- это действительно бессмысленная игра с ненужной косвенностью.
Использование& mdash; Леннарт Поэттеринг (2015-07-22). Пожалуйста, рассмотрите наличие переменных для всего файла модуля . системная ошибка # 618. GitHub.EnvironmentFile=
в значительной степени всегда плохая идея, и мы, вероятно, никогда не должны были добавлять это, так как оно предлагает упаковщикам вновь ввести безумие/etc/default/
и/etc/sysconfig/
, которое мы пытаемся устранить .
В мире daemontools у нас есть каталоги среды , конечно же, , которые читаются с помощью команды envdir
/ s6-envdir
. Хотя это не является стандартом или требованием к daemontools, конвенция , которую можно использовать, которая согласуется с некоторыми инструментами, заключается в том, что каталог среды называется env
и живет в каталоге службы вместе с run
программа и прочее.