Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
51dbc5ede3 |
54
s4a.tex
54
s4a.tex
@@ -1943,6 +1943,60 @@ init-скрипта, или даже сами не~являющиеся скри
|
||||
\item Приоритет OOM killer'а для демона.
|
||||
\end{itemize}
|
||||
|
||||
А теперь давайте ответим на вопрос: что плохого в +/etc/sysconfig+
|
||||
(+/etc/default+) и почему этим каталогам нет места в мире systemd?
|
||||
\begin{itemize}
|
||||
\item Прежде всего, утрачены основная цель и смысл существования этих
|
||||
каталогов: файлы конфигурации юнитов systemd не~являются
|
||||
программами, в отличие от init-скриптов SysV. Эти файлы
|
||||
представляют собой простые, декларативные описания конкретных
|
||||
задач и функций, и обычно содержат не~более шести строк. Они
|
||||
легко могут быть сгенерированы и проанализованы без
|
||||
использования Bourne shell. Их легко читать и понимать. Кроме
|
||||
того, их легко модифицировать: достаточно скопировать их из
|
||||
+/lib/systemd/system+ в +/etc/systemd/system+, после чего внести
|
||||
необходимые изменения в скопированный файл. При этом можно быть
|
||||
уверенным, что изменения не~будут затерты пакетным менеджером.
|
||||
Изначальная причина появления обсуждаемых каталогов~---
|
||||
необходимость разделять код и параметры конфигурации~--- больше
|
||||
не~существует, так как файлы описания юнитов не~являются кодом.
|
||||
Проще говоря, обсуждаемые каталоги пытаются решить проблему,
|
||||
которой уже не~существует.
|
||||
\item Обсуждаемые каталоги и файлы в них очень сильно привязаны к
|
||||
специфике дистрибутивов. Мы же планируем, используя systemd,
|
||||
способствовать стандартизации и унификации дистрибутивов. В
|
||||
частности, одним из факторов такой стандартизации является
|
||||
рекомендация распространять соответствующие файлы конфигурации
|
||||
юнитов сразу с апстримным продуктом, а не~возлагать эту работу
|
||||
на создателей пакетов, как это делалась во времена SysV.
|
||||
Так как расположение обсуждаемых каталогов и настраиваемые через
|
||||
них параметры сильно отличаются от дистрибутива к дистрибутиву,
|
||||
пытаться поддерживать их в апстримных файлах конфигурации юнитов
|
||||
просто бессмысленно. Хранение конфигурации в обсуждаемых
|
||||
каталогов~--- один из факторов, превращающих Linux в зоопарк
|
||||
несовместимых решений.
|
||||
\item Большинство настроек, задаваемых через эти каталоги, являются
|
||||
избыточными в мире systemd. Например, различные службы позволяют
|
||||
задать таким методом параметры исполнения процесса, в частности,
|
||||
идентификатор пользователя/группы, ограничения ресурсов,
|
||||
привязки к ядрам CPU, приоритет OOM killer'а. Однако, эти
|
||||
настройки поддерживаются лишь некоторыми init-скриптами, причем
|
||||
одна и та же настройка в различных скриптах может называться
|
||||
по-разному. С другой стороны, в мире systemd, все эти настройки
|
||||
доступны для всех служб без исключения, и всегда задаются
|
||||
одинаково, через одни и те же параметры конфигурационных файлов.
|
||||
\item Файлы конфигурации юнитов имеют множество удобных и простых в
|
||||
использовании настроек среды исполнения процесса, гораздо
|
||||
больше, чем могут предоставить файлы из +/etc/sysconfig+.
|
||||
\item Необходимость в некоторых из этих настроек весьма сомнительна.
|
||||
Например, возьмем вышеупомянутую возможность задавать
|
||||
идентификатор пользователя/группы для процесса. Эту задачу
|
||||
должен решать разработчик ПО или дистрибутива. Вмешательство
|
||||
администратора в эту настройку, как правило, лишено смысла~---
|
||||
только разработчик располагает всей информацией,
|
||||
позволяющий предотвратить конфликты идентификаторов и имен
|
||||
пользователей и групп.
|
||||
\end{itemize}
|
||||
|
||||
\end{document}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user