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}
|
\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}
|
\end{document}
|
||||||
|
|
||||||
vim:ft=tex:tw=80:spell:spelllang=ru
|
vim:ft=tex:tw=80:spell:spelllang=ru
|
||||||
|
|||||||
Reference in New Issue
Block a user