Version v7.4 (2011-08-24 16:13) [AUTO]

This commit is contained in:
nnz1024
2011-08-24 16:13:00 +04:00
parent b853acbc75
commit 61330d78c8

79
s4a.tex
View File

@@ -2026,8 +2026,87 @@ init-скрипта, или даже сами не~являющиеся скри
опция действует прямо противоположным образом.) В отличие от
конфигурационных файлов, строка запуска не~может включать
полноценных комментариев.
\item Некоторые из настроек, задаваемых в +/etc/sysconfig+, являются
полностью избыточными. Например, во многие дистрибутивах
подобным методом указывается, установлены ли аппаратные часы
компьютера по Гринвичу, или по местному времени. Однако эта же
настройка задается третьей строкой файла +/etc/adjtime+,
поддерживаемого во всех дистрибутивах. Использование
избыточного и не~стандартизированного параметра конфигурации
только добавляет путаницу и не~несет никакой пользы.
\item Многие файлы настроек из +/etc/sysconfig+ позволяют отключать
запуск соответствующей службы. Однако эта операция уже
поддерживается штатно для всех служб, через команды
+systemctl enable+/+disable+ (или +chkconfig on+/+off+).
Добавление дополнительного уровня настройки не~приносит никакой
пользы и лишь усложняет работу администратора.
\item Что списка принудительно загружаемых модулей ядра: в настоящее
время существуют куда более удобные пути для автоматической
подгрузки модулей при загрузке системы. Например, многие модули
+udev+ подгружает автоматически, при обнаружении
соответствующего оборудования. Этот же принцип распространяется
на ACPI и другие высокоуровневые технологии. Одно из немногих
ислючений из этого правила~--- к сожалению, в настоящее время
не~поддерживается автоматическая загрузка модулей на основании
информации о возможностях процессора, однако это будет
исправлено в ближайшем будущем. В случае, если нужный вам модуль
ядра все же не~может быть подгружен автоматически, все равно
существует гораздо более удобные методы указать его
принудительную подгрузку~--- например, создав соответствующий
файл в каталоге
\hreftt{http://0pointer.de/public/systemd-man/modules-load.d.html}{/etc/modules-load.d/}
(стандартный метод настройки принудительной подгрузки модулей).
\item И наконец, хотелось бы отметить, что каталог +/etc+ определен как
место для хранения системных настроек (<<Host-specific system
configuration>>, согласно FHS). Наличие внутри него подкаталога
+sysconfig+, который тоже содержит системную конфигурацию,
является очевидно избыточным.
\end{itemize}
Что же можно предложить в качестве современной, совместимой с systemd
альтернативы этим каталогам? Ниже приведен список советов, как поступить с тем
или иным параметром конфигурации:
\begin{itemize}
\item Попробуйте просто отказаться от них. Если они полностью избыточны (например,
настройка аппаратных часов на Гринвич/местное время), то убрать
их будет довольно легко (если не~рассматривать вопросы
обеспечения совместимости). Если аналогичные по смыслу опции
штатно поддерживаются systemd, нет никакого смысла дублировать
их где-то еще. (Перечень опций, которые можно задать для любой
службы, приведен на страницах справки
\href{http://0pointer.de/public/systemd-man/systemd.exec.html}{systemd.exec(5)}
и
\href{http://0pointer.de/public/systemd-man/systemd.service.html}{systemd.service(5)}.)
Если же ваша настройка просто добавляет еще один уровень
отключения запуска службы, откажитесь от нее, чтобы не~плодить
лишние сущности.
\item Найдите для них более подходящее место. Например, в случае с
некоторыми общесистемными настройками (такими, как локаль или
часовой пояс), мы надеемся аккуратно подтолкнуть дистрибутивы в
правильно направлении (см. предыдущий эпизод).
\item Добавьте их поддержку в штатную систему настройки демона через
собственные файлы конфигурации. К счастью, большинство служб,
работающих в Linux, являются свободным программным обеспечением,
так что сделать это довольно просто.
\end{itemize}
Существует лишь одна причина поддерживать эти файлы еще некоторое
время: необходимо обеспечить совместимость при обновлении. Тем не~менее, в новых
пакетах от этих файлов лучше отказаться.
Если требование совместимости критично, вы можете задейстовать эти
конфигурационные файлы даже в том случае, если настраиваете службы через
штатные unit-файлы systemd. Если ваш файл из +sysconfig+ содержит лишь
определения переменных, можно воспользоваться опцией
+EnvironmentFile=-/etc/sysconfig/foobar+ (подробнее об этой опции см.
\href{http://0pointer.de/public/systemd-man/systemd.exec.html}{systemd.exec(5)}),
которая позволит определить соответствующие переменные окружения, которые будут
использованы при запуске службы. Если же для задания настроек вам необходим
полноценный язык программирования, вы можете им воспользоваться. Например,
создайте в +/usr/lib/<your package>/+ простой скрипт, который включает
соответствующие файлы, а затем запускает бинарник демона через +exec+. После
чего просто укажите этот скрипт в опции +ExecStart=+ вместо бинарника демона.
\end{document}
vim:ft=tex:tw=80:spell:spelllang=ru