Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
61330d78c8 |
79
s4a.tex
79
s4a.tex
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user