Version v13.4 (2013-01-20 04:30) [AUTO]

This commit is contained in:
nnz1024
2013-01-20 04:30:00 +04:00
parent 5fb4692385
commit 97fae68e02

143
s4a.tex
View File

@@ -3337,42 +3337,44 @@ StartLimitAction=reboot-force
для краткости изложения, при переводе используется не~вполне корректный, но для краткости изложения, при переводе используется не~вполне корректный, но
хорошо знакомый администраторам жаргонизм <<последовательная консоль>>. Также хорошо знакомый администраторам жаргонизм <<последовательная консоль>>. Также
отметим, что в данном документе термины <<консоль>> и <<терминал>> используются отметим, что в данном документе термины <<консоль>> и <<терминал>> используются
как синонимы.} достаточно добавить параметр ядра \verb+console=ttyS0+, и systemd как синонимы.} достаточно указать в загрузчике параметр ядра
автоматически запустит getty на этом терминале.} \verb+console=ttyS0+, и systemd автоматически запустит getty на этом терминале.}
Физический последовательный порт Физический последовательный порт
\href{https://ru.wikipedia.org/wiki/RS-232}{RS-232}, хотя уже и стал редкостью \href{https://ru.wikipedia.org/wiki/RS-232}{RS-232}, хотя уже и стал редкостью
на современных настольных компьютерах, тем не~менее, продолжает играть на современных настольных компьютерах, тем не~менее, продолжает играть важную
важную роль на современных серверах и встраиваемых системах. Он предоставляет роль как на серверах, так и во встраиваемых системах. Он предоставляет простой и
простой и надежный доступ к управлению системой, даже когда сеть упала, а надежный доступ к управлению системой, даже когда сеть упала, а основной
основной интерфейс управления завис. Кроме того, эмуляция последовательной интерфейс управления завис. Кроме того, эмуляция последовательной консоли часто
консоли часто используется при управлении виртуальными машинами. используется при управлении виртуальными машинами.
Разумеется, в Linux уже давно реализована поддержка работы с последовательными Разумеется, в Linux уже давно реализована поддержка работы с последовательными
консолями, однако при разработке консолями но, при разработке
\href{http://www.freedesktop.org/wiki/Software/systemd}{systemd} мы постарались \href{http://www.freedesktop.org/wiki/Software/systemd}{systemd}, мы постарались
сделать работу с ними еще проще. В этой статье я хочу рассказать о том, как в сделать работу с ними еще проще. В этой статье я хочу рассказать о том, как в
systemd реализован запуск \href{https://ru.wikipedia.org/wiki/Getty}{getty} на systemd реализован запуск \href{https://ru.wikipedia.org/wiki/Getty}{getty} на
терминалах различных типов. терминалах различных типов.
Для начала, хотелось бы отметить следующий момент: в большинстве случаев, чтобы Для начала, хотелось бы отметить один важный момент: в большинстве случаев, чтобы
получить приглашение к логину на последовательном терминале, вам не~нужно получить приглашение к логину на последовательном терминале, вам не~нужно
совершать никаких дополнительных действий: systemd сам проверит настройки ядра, совершать никаких дополнительных действий: systemd сам проверит настройки ядра,
определит их них используемую ядром консоль, и автоматически запустит на ней определит их них используемую ядром консоль, и автоматически запустит на ней
getty. Таким образом, вам достаточно лишь правильно указать ядру соответствующую getty. Таким образом, вам достаточно лишь правильно указать ядру соответствующую
консоль (например, добавив к параметрам ядра в загрузчик +console=ttyS0+). консоль (например, добавив к параметрам ядра в загрузчик +console=ttyS0+).
Тем не~менее, для общего образования мы все же рассмотрим некоторые тонкости Тем не~менее, для общего образования все же стоит рассмотреть некоторые
запуска getty в systemd. Эта задача решается двумя шаблонами тонкости запуска getty в systemd. Эта задача решается двумя шаблонами
юнитов\footnote{Прим. перев.: Принципы работы с шаблонами и экземплярами служб юнитов\footnote{Прим. перев.: Принципы работы с шаблонами и экземплярами служб
изложены в главе~\ref{sec:instances}. Для лучшего понимания нижеприведенного изложены в главе~\ref{sec:instances}. Для лучшего понимания нижеприведенного
материала, рекомендуется перечитать эту главу, если вы ее подзабыли.}: материала, рекомендуется перечитать эту главу, если вы успели ее подзабыть.}:
\begin{itemize} \begin{itemize}
\item +getty@.service+ отвечает за \item +getty@.service+ отвечает за
\href{https://ru.wikipedia.org/wiki/%D0%92%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D1%8C}% \href{https://ru.wikipedia.org/wiki/%D0%92%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D1%8C}%
{виртуальные консоли} (+/dev/tty1+ и т.д.)~--- их можно увидеть {виртуальные консоли} (virtual terminals, VT, известные в
безо всякого дополнительного оборудования, просто переключившись системе под именами +/dev/tty1+, +/dev/tty2+ и т.д.)~--- те,
на них из графического сеанса. которые вы можете увидеть безо всякого дополнительного
оборудования, просто переключившись на них из графического
сеанса.
\item +serial-getty@.service+ обеспечивает поддержку всех прочих \item +serial-getty@.service+ обеспечивает поддержку всех прочих
разновидностей терминалов, в том числе, подключаемых к разновидностей терминалов, в том числе, подключаемых к
@@ -3380,7 +3382,7 @@ getty. Таким образом, вам достаточно лишь прав
ряд отличий от +getty@.service+, в частности, переменная \verb+$TERM+ ряд отличий от +getty@.service+, в частности, переменная \verb+$TERM+
в нем устанавливается в значение +vt102+ (должно хорошо работать в нем устанавливается в значение +vt102+ (должно хорошо работать
на большинстве физических терминалов), а не~+linux+ (которое на большинстве физических терминалов), а не~+linux+ (которое
работаеть правильно только на виртуальных консолях), а также работает правильно только на виртуальных консолях), а также
пропущены настройки, касающиеся очистки буфера прокрутки (и пропущены настройки, касающиеся очистки буфера прокрутки (и
поэтому имеющие смысл только на VT). поэтому имеющие смысл только на VT).
\end{itemize} \end{itemize}
@@ -3399,18 +3401,18 @@ getty. Таким образом, вам достаточно лишь прав
как вы переключитесь на вторую виртуальную консоль. Отказавшись от как вы переключитесь на вторую виртуальную консоль. Отказавшись от
обязательного запуска нескольких экземпляров getty, мы сэкономили немного обязательного запуска нескольких экземпляров getty, мы сэкономили немного
системных ресурсов, а также сделали загрузку системы чуть-чуть быстрее. При системных ресурсов, а также сделали загрузку системы чуть-чуть быстрее. При
этом, с точки зрения пользователя, все очень просто: как только он переключается этом, с точки зрения пользователя, все осталось так же просто: как только он
на виртуальную консоль, на ней запускается getty, которая выводит приглашение к переключается на виртуальную консоль, на ней запускается getty, которая выводит
логину. Пользователь может и не~подозревать о том, что до момента переключения приглашение к логину. Пользователь может и не~подозревать о том, что до момента
ничего этого не~было. Тем не~менее, если он войдет в систему и выполнит команду переключения приглашения не~было. Тем не~менее, если он войдет в систему и
+ps+, он увидит, что getty запущены только на тех консолях, на которых он уже выполнит команду +ps+, он увидит, что getty запущены только на тех консолях, на
побывал. которых он уже побывал.
По умолчанию, автоматический запуск getty производится на виртуальных консолях с По умолчанию, автоматический запуск getty производится на виртуальных консолях с
первой по шестую (чтобы свести к минимуму отличия от привычной первой по шестую (чтобы свести к минимуму отличия от привычной
конфигурации)\footnote{Тем не~менее, это поведение можно легко изменить, конфигурации)\footnote{Тем не~менее, это поведение можно легко изменить,
задавая параметр +NAutoVTs=+ в файле задавая параметр +NAutoVTs=+ в файле
\href{http://www.freedesktop.org/software/systemd/man/logind.conf.html}{logind.conf}.} \href{http://www.freedesktop.org/software/systemd/man/logind.conf.html}{logind.conf}.}.
Отметим, что автоматический запуск getty на конкретной консоли производится Отметим, что автоматический запуск getty на конкретной консоли производится
только при условии, что эта консоль не~занята другой программой. В частности, только при условии, что эта консоль не~занята другой программой. В частности,
при интенсивном использовании механизма при интенсивном использовании механизма
@@ -3429,9 +3431,9 @@ getty. Таким образом, вам достаточно лишь прав
Что касается +tty6+, то она используется исключительно для автоматического Что касается +tty6+, то она используется исключительно для автоматического
запуска getty, и недоступна другим подсистемам, в частности, графическому запуска getty, и недоступна другим подсистемам, в частности, графическому
серверу\footnote{При необходимости, вы можете легко поменять резервируемую серверу\footnote{При необходимости, вы можете легко поменять номер резервируемой
консоль, используя параметр +ReserveVT=+ в файле консоли (или отключить резервирование), используя параметр +ReserveVT=+ в файле
\href{http://www.freedesktop.org/software/systemd/man/logind.conf.html}{logind.conf}.} \href{http://www.freedesktop.org/software/systemd/man/logind.conf.html}{logind.conf}.}.
Мы сделали так специально, чтобы гарантировать возможность входа в систему в Мы сделали так специально, чтобы гарантировать возможность входа в систему в
текстовом режиме, даже если графический сервер займет более пяти консолей. текстовом режиме, даже если графический сервер займет более пяти консолей.
@@ -3446,7 +3448,7 @@ getty. Таким образом, вам достаточно лишь прав
Консолью ядра~--- это та консоль, на которую выводятся сообщения ядра. Обычно Консолью ядра~--- это та консоль, на которую выводятся сообщения ядра. Обычно
она настраивается в загрузчике, путем добавления к параметрам ядра аргумента она настраивается в загрузчике, путем добавления к параметрам ядра аргумента
наподобие +console=ttyS0+\footnote{Подробнее об этой опции см. в файле наподобие +console=ttyS0+\footnote{Подробнее об этой опции см. в файле
\href{https://www.kernel.org/doc/Documentation/kernel-parameters.txt}{kernel-parameters.txt}.} \href{https://www.kernel.org/doc/Documentation/kernel-parameters.txt}{kernel-parameters.txt}.}.
Таким образом, если пользователь перенаправил вывод ядра на последовательную Таким образом, если пользователь перенаправил вывод ядра на последовательную
консоль, то по завершении загрузки он увидит на этой консоли приглашение для консоль, то по завершении загрузки он увидит на этой консоли приглашение для
логина\footnote{Отметим, что getty, а точнее, +agetty+ на такой консоли логина\footnote{Отметим, что getty, а точнее, +agetty+ на такой консоли
@@ -3459,7 +3461,7 @@ getty. Таким образом, вам достаточно лишь прав
\href{http://www.freedesktop.org/wiki/Software/systemd/Generators}{программой-генератором}~--- \href{http://www.freedesktop.org/wiki/Software/systemd/Generators}{программой-генератором}~---
\href{http://www.freedesktop.org/software/systemd/man/systemd-getty-generator.html}{systemd-getty-generator}. \href{http://www.freedesktop.org/software/systemd/man/systemd-getty-generator.html}{systemd-getty-generator}.
Генераторы запускаются в самом начале загрузки и автоматически настраивают Генераторы запускаются в самом начале загрузки и автоматически настраивают
различные службы в зависимости от различных факторов. различные службы в зависимости от соответствующих факторов.
В большинстве случаев, вышеописанного механизма автоматической настройки должно В большинстве случаев, вышеописанного механизма автоматической настройки должно
быть достаточно, чтобы получить приглашение логина там, где нужно~--- без быть достаточно, чтобы получить приглашение логина там, где нужно~--- без
@@ -3483,9 +3485,9 @@ daemon-reload}.}:
указанных последовательных портов при всех последующих загрузках. указанных последовательных портов при всех последующих загрузках.
В некоторых ситуациях может возникнуть необходимость в тонкой настройке В некоторых ситуациях может возникнуть необходимость в тонкой настройке
параметров getty (например, настроенная для ядра символьная скорость непригодна параметров getty (например, заданная для вывода сообщений ядра символьная
для интерактивного сеанса). Тогда просто скопируйте штатный шаблон юнита в скорость непригодна для интерактивного сеанса). Тогда просто скопируйте штатный
каталог +/etc/systemd/system+ и отредактируйте полученную копию: шаблон юнита в каталог +/etc/systemd/system+ и отредактируйте полученную копию:
\begin{Verbatim} \begin{Verbatim}
# cp /usr/lib/systemd/system/serial-getty@.service /etc/systemd/system/serial-getty@ttyS2.service # cp /usr/lib/systemd/system/serial-getty@.service /etc/systemd/system/serial-getty@ttyS2.service
# vi /etc/systemd/system/serial-getty@ttyS2.service # vi /etc/systemd/system/serial-getty@ttyS2.service
@@ -3496,7 +3498,7 @@ daemon-reload}.}:
\end{Verbatim} \end{Verbatim}
В приведенном примере создает файл настроек, определяющий запуск getty на порту В приведенном примере создает файл настроек, определяющий запуск getty на порту
+ttyS2+ (это определяется именем, под которым мы скопировали файл~--- +ttyS2+ (это определяется именем, под которым мы скопировали файл~---
+serial-getty@ttyS2.service+). Все изменения настроек, сделанные в этом файле, +serial-getty@ttyS2.service+). Все изменения настроек, сделанные в данном файле,
будут распространяться только на этот порт. будут распространяться только на этот порт.
Собственно, это все, что я хотел рассказать о последовательных портах, Собственно, это все, что я хотел рассказать о последовательных портах,
@@ -3523,7 +3525,9 @@ Journal был включен в Fedora начиная с F17. В Fedora~18 jour
удобный механизм работы с системным журналом. Однако, и в~F17, и в~F18 journal удобный механизм работы с системным журналом. Однако, и в~F17, и в~F18 journal
по умолчанию сохраняет информацию только в небольшой кольцевой буфер в каталоге по умолчанию сохраняет информацию только в небольшой кольцевой буфер в каталоге
+/run/log/journal+. Как и все содержимое каталога +/run+, эта информация +/run/log/journal+. Как и все содержимое каталога +/run+, эта информация
теряется при перезагрузке. Такой подход сильно ограничивает использование теряется при перезагрузке\footnote{Прим. перев.: Разумеется, это никак
не~относится к традиционному демону системного лога, даже если он работает
поверх journal.}. Такой подход сильно ограничивает использование
полезных возможностей journal, однако вполне достаточен для вывода актуальных полезных возможностей journal, однако вполне достаточен для вывода актуальных
сообщений от служб в +systemctl status+. Начиная с Fedora~19, мы собираемся сообщений от служб в +systemctl status+. Начиная с Fedora~19, мы собираемся
включить сохранение логов на диск, в каталог +/var/log/journal+. При этом, включить сохранение логов на диск, в каталог +/var/log/journal+. При этом,
@@ -3544,8 +3548,8 @@ Journal был включен в Fedora начиная с F17. В Fedora~18 jour
\begin{Verbatim} \begin{Verbatim}
# mkdir -p /var/log/journal # mkdir -p /var/log/journal
\end{Verbatim} \end{Verbatim}
После этого рекомендуется перезагрузить систему, чтобы заполнить журнал овыми После этого рекомендуется перезагрузить систему, чтобы заполнить журнал новыми
записями. записями.
Так как теперь у вас есть journal, syslog вам больше не~нужен (кроме ситуаций, Так как теперь у вас есть journal, syslog вам больше не~нужен (кроме ситуаций,
когда вам совершенно необходимо иметь +/var/log/messages+ в текстовом виде), и когда вам совершенно необходимо иметь +/var/log/messages+ в текстовом виде), и
@@ -3557,8 +3561,8 @@ Journal был включен в Fedora начиная с F17. В Fedora~18 jour
\subsection{Основы} \subsection{Основы}
Итак, приступим. Нижеприведенный текст демонстрирует возможности systemd~195, Итак, приступим. Нижеприведенный текст демонстрирует возможности systemd~195,
входящего в Fedora~18\footnote{Обновление со 195-й версией systemd в настоящее входящего в Fedora~18\footnote{Обновление со 195-й версией systemd на момент
время находится написания этих строк находится
\href{https://admin.fedoraproject.org/updates/FEDORA-2012-16709/systemd-195-1.fc18}{на \href{https://admin.fedoraproject.org/updates/FEDORA-2012-16709/systemd-195-1.fc18}{на
тестировании} и вскоре будет включено в состав Fedora~18.}, так что, если тестировании} и вскоре будет включено в состав Fedora~18.}, так что, если
некоторые из описанных трюков не~сработают в F17~--- пожалуйста, дождитесь F18. некоторые из описанных трюков не~сработают в F17~--- пожалуйста, дождитесь F18.
@@ -3571,14 +3575,22 @@ Journal был включен в Fedora начиная с F17. В Fedora~18 jour
\end{Verbatim} \end{Verbatim}
Если вы выполнили эту команду с полномочиями root, вы увидите все Если вы выполнили эту команду с полномочиями root, вы увидите все
журнальные сообщения, включая исходящие как от системных компонентов, так и от журнальные сообщения, включая исходящие как от системных компонентов, так и от
залогиненных пользователей. Вывод этой команды форматируется в стиле залогиненных пользователей\footnote{Прим. перев.: А если вы выполнили эту
+/var/log/messages+, однако в нем добавлены кое-какие улучшения: команду от имени непривилегированного пользователя, не~входящего в группу
+adm+, и при этом не~включили сохранение логов на диск, то вы не~увидите
ничего~--- без специальных полномочий пользователь может просматривать только
собственный лог, а он по умолчанию ведется только если логи записываются на
диск.}. Вывод этой команды форматируется в стиле
+/var/log/messages+, но при этом добавлены кое-какие улучшения:
\begin{itemize} \begin{itemize}
\item Строки с приоритетом error и выше подсвечены красным. \item Строки с приоритетом error и выше подсвечены красным.
\item Строки с приоритетом notice и warning выделены жирным шрифтом. \item Строки с приоритетом notice и warning выделены жирным шрифтом.
\item Все отметки времени сформированы с учетом вашего часового пояса. \item Все отметки времени сформированы с учетом вашего часового пояса.
\item Для навигации по тексту используется просмотрщик (pager), по \item Для навигации по тексту используется просмотрщик (pager), по
умолчанию +less+. умолчанию +less+\footnote{Прим. перев.: В инструментах systemd,
включая journalctl, просмотрщик включается только при прямом
выводе на экран, и отключается при перенаправлении вывода в файл
или передаче его по каналу (shell pipe).}.
\item Выводятся \emph{все} доступные данные, включая информацию из \item Выводятся \emph{все} доступные данные, включая информацию из
файлов, прошедших ротацию (rotated logs). файлов, прошедших ротацию (rotated logs).
\item Загрузка системы отмечается специальной строкой, отделяющей \item Загрузка системы отмечается специальной строкой, отделяющей
@@ -3587,7 +3599,8 @@ Journal был включен в Fedora начиная с F17. В Fedora~18 jour
Отметим, что в данной статье не~приводятся примеры такого вывода~--- прежде Отметим, что в данной статье не~приводятся примеры такого вывода~--- прежде
всего, для краткости изложения, но также и для того, чтобы дать вам повод всего, для краткости изложения, но также и для того, чтобы дать вам повод
поскорее попробовать Fedora~18 с systemd~195. Надеюсь, вы поймете суть и так. поскорее попробовать Fedora~18 с systemd~195. Надеюсь, отсутствие таких примеров
не~помешает вам уловить суть.
\subsection{Контроль доступа} \subsection{Контроль доступа}
@@ -3620,10 +3633,10 @@ $ journalctl
\subsection{Отслеживание логов в реальном времени} \subsection{Отслеживание логов в реальном времени}
Когда вы запускаете программу +journalctl+ без параметров, она выводит все Когда вы запускаете программу +journalctl+ без параметров, она выводит все
сообщения, сгенерированные на текущий момент. Однако, иногда бывает полезно сообщения, сгенерированные на текущий момент, и возвращает управление оболочке.
отслеживать их появление в режиме реального времени. В классической реализации Однако, иногда бывает полезно отслеживать их появление в режиме реального
syslog это осуществлялось командой +tail -f /var/log/messages+. В journal ее времени. В классической реализации syslog это осуществлялось командой
аналог выглядит так: +tail -f /var/log/messages+. В journal ее аналог выглядит так:
\begin{Verbatim} \begin{Verbatim}
$ journalctl -f $ journalctl -f
\end{Verbatim} \end{Verbatim}
@@ -3669,13 +3682,13 @@ $ journalctl -u httpd --since=00:00 --until=9:30
\begin{Verbatim} \begin{Verbatim}
$ journalctl /dev/sdc $ journalctl /dev/sdc
\end{Verbatim} \end{Verbatim}
Кошмар, ошибка ввода-вывода!\footnote{Ну ладно, признаюсь, здесь я немножко Кошмар, ошибка ввода-вывода\footnote{Ну ладно, признаюсь, здесь я немножко
считерил. Индексирование сообщений ядра по блочным устройствам пока что считерил. Индексирование сообщений ядра по блочным устройствам пока что
не~принято в апстрим, но Ганс не~принято в апстрим, но Ганс
\href{http://www.spinics.net/lists/linux-scsi/msg62499.html}{проделал огромную \href{http://www.spinics.net/lists/linux-scsi/msg62499.html}{проделал огромную
работу}, чтобы реализовать эту функциональность, и я надеюсь, что к релизу F18 работу}, чтобы реализовать эту функциональность, и я надеюсь, что к релизу F18
все будет.} Нужно срочно заменить диск, пока не~начались более серьезные все будет.}! Нужно срочно заменить диск, пока не~начались более серьезные
проблемы. Ладно, пошли дальше. Что у нас там случилось с процессом vpnc? проблемы. Ладно, пойдем дальше. Что у нас там случилось с процессом vpnc?
\begin{Verbatim} \begin{Verbatim}
$ journalctl /usr/sbin/vpnc $ journalctl /usr/sbin/vpnc
\end{Verbatim} \end{Verbatim}
@@ -3735,7 +3748,7 @@ Tue, 2012-10-23 23:51:38 CEST [s=ac9e9c423355411d87bf0ba1a9b424e8;i=4301;b=5335e
\href{http://www.freedesktop.org/software/systemd/man/systemd.journal-fields.html}% \href{http://www.freedesktop.org/software/systemd/man/systemd.journal-fields.html}%
{странице руководства}. {странице руководства}.
И база данных Journal индексируется по \emph{всем} этим полям! И мы можем База данных Journal индексируется по \emph{всем} этим полям! И мы можем
использовать любое из них в качестве критерия выборки: использовать любое из них в качестве критерия выборки:
\begin{Verbatim} \begin{Verbatim}
$ journalctl _UID=70 $ journalctl _UID=70
@@ -3746,18 +3759,18 @@ $ journalctl _UID=70
\begin{Verbatim} \begin{Verbatim}
$ journalctl _UID=70 _UID=71 $ journalctl _UID=70 _UID=71
\end{Verbatim} \end{Verbatim}
Указание двух значений для одного и того же поля эквивалентно логическому ИЛИ. Указание нескольких значений для одного и того же поля эквивалентно логическому
Таким образом, будут выведены записи как от процессов с UID 70, так и от ИЛИ. Таким образом, будут выведены записи как от процессов с UID 70, так и от
процессов с UID 71. процессов с UID 71.
\begin{Verbatim} \begin{Verbatim}
$ journalctl _HOSTNAME=epsilon _COMM=avahi-daemon $ journalctl _HOSTNAME=epsilon _COMM=avahi-daemon
\end{Verbatim} \end{Verbatim}
А указание двух \emph{различных} полей дает эффект логического И. В результате, А вот указание нескольких \emph{различных} полей дает эффект логического И. В
будут выведены записи только от процесса +avahi-daemon+, работающего на хосте с результате, будут выведены записи только от процесса +avahi-daemon+, работающего
именем +epsilon+. на хосте с именем +epsilon+.
Но мы этим не~ограничимся! Мы же суровые компьютерщики, мы хотим использовать Но мы этим не~ограничимся! Мы же суровые компьютерщики, нам нужны сложные
сложные логические выражения! логические выражения!
\begin{Verbatim} \begin{Verbatim}
$ journalctl _HOSTNAME=theta _UID=70 + _HOSTNAME=epsilon _COMM=avahi-daemon $ journalctl _HOSTNAME=theta _UID=70 + _HOSTNAME=epsilon _COMM=avahi-daemon
\end{Verbatim} \end{Verbatim}
@@ -3773,8 +3786,8 @@ $ journalctl _HOSTNAME=theta _UID=70 + _HOSTNAME=epsilon _COMM=avahi-daemon
\subsection{И немного магии} \subsection{И немного магии}
Уже неплохо, правда? Но есть один недостаток~--- мы же не~сможем запомнить все Уже неплохо, правда? Но есть одна проблема~--- мы же не~сможем запомнить все
возможные значения все полей журнала! Для этого была бы нужна очень хорошая возможные значения всех полей журнала! Для этого была бы нужна очень хорошая
память. Но +journalctl+ вновь приходит к нам на помощь: память. Но +journalctl+ вновь приходит к нам на помощь:
\begin{Verbatim} \begin{Verbatim}
$ journalctl -F _SYSTEMD_UNIT $ journalctl -F _SYSTEMD_UNIT
@@ -3837,7 +3850,7 @@ SELinux ;-) Разумеется, такое дополнение работае
в соответствии с некоторыми правилами. В частности, это особенно актуально на в соответствии с некоторыми правилами. В частности, это особенно актуально на
маломощных встраиваемых и мобильных системах, обладающих очень скудными маломощных встраиваемых и мобильных системах, обладающих очень скудными
ресурсами. Но та же задача актуальна и для очень мощных вычислительных ресурсами. Но та же задача актуальна и для очень мощных вычислительных
кластеров, которые располагают огромными ресурсами, но при это несут и огромную кластеров, которые располагают огромными ресурсами, но при этом несут и огромную
вычислительную нагрузку. вычислительную нагрузку.
Исторически, в Linux поддерживался только одна схема управления ресурсами: все Исторически, в Linux поддерживался только одна схема управления ресурсами: все
@@ -3851,7 +3864,7 @@ CGI-процессов при прочих равных получает гор
syslog, у которой не~так много процессов. syslog, у которой не~так много процессов.
В процессе проектирования архитектуры systemd, мы практически сразу поняли, что В процессе проектирования архитектуры systemd, мы практически сразу поняли, что
управление ресурсов должно быть одной из его базовых функций, заложенных в управление ресурсов должно быть одной из базовых функций, заложенных в
основы его структуры. В современной системе~--- неважно, серверной или основы его структуры. В современной системе~--- неважно, серверной или
встраиваемой~--- контроль использования процессора, памяти и ввода-вывода для встраиваемой~--- контроль использования процессора, памяти и ввода-вывода для
различных служб нельзя добавлять задним числом. Такая функциональность должна различных служб нельзя добавлять задним числом. Такая функциональность должна
@@ -3915,13 +3928,13 @@ systemd предоставляет ряд высокоуровневых нас
несколькими рабочими процессами получит такую же долю процессорного времени, несколькими рабочими процессами получит такую же долю процессорного времени,
как и Apache, даже если тот запустил 1000 CGI-процессов. Разумеется, такое как и Apache, даже если тот запустил 1000 CGI-процессов. Разумеется, такое
поведение при необходимости можно легко отключить~--- см. опцию поведение при необходимости можно легко отключить~--- см. опцию
\href{http://0pointer.de/public/systemd-man/systemd.conf.html}{DefaultControllers=} \hreftt{http://0pointer.de/public/systemd-man/systemd.conf.html}{DefaultControllers=}
в файле +/etc/systemd/system.conf+. в файле +/etc/systemd/system.conf+.
Если \emph{равномерное} распределение процессорного времени между службами вас Если \emph{равномерное} распределение процессорного времени между службами вас
не~устраивает, и вы хотите выделить определенным службам больше или меньше не~устраивает, и вы хотите выделить определенным службам больше или меньше
времени~--- используйте опцию времени~--- используйте опцию
\href{http://0pointer.de/public/systemd-man/systemd.exec.html}{CPUShares} в \hreftt{http://0pointer.de/public/systemd-man/systemd.exec.html}{CPUShares=} в
конфигурационном файле службы. По умолчанию это значение равно 1024. Увеличивая конфигурационном файле службы. По умолчанию это значение равно 1024. Увеличивая
это число, вы даете службе больше процессорного времени, уменьшая~--- это число, вы даете службе больше процессорного времени, уменьшая~---
соответственно, меньше. соответственно, меньше.
@@ -4020,7 +4033,7 @@ MemoryLimit=1G
BlockIOWeight=500 BlockIOWeight=500
\end{Verbatim} \end{Verbatim}
При необходимости, вы можете задать это значение отдельно для каждого При необходимости, вы можете задать такое значение отдельно для каждого
устройства: устройства:
\begin{Verbatim} \begin{Verbatim}
.include /usr/lib/systemd/system/httpd.service .include /usr/lib/systemd/system/httpd.service
@@ -4067,7 +4080,7 @@ BlockIOReadBandwith=/var/log 5M
\subsection{Прочие параметры} \subsection{Прочие параметры}
Вышеописанные опции покрывают лишь малую толику настроек, поддерживаемых Вышеописанные опции покрывают лишь малую толику настроек, поддерживаемых
различными контроллерами Linux croups. Мы добавили высокоуровневый интерфейс различными контроллерами Linux cgroups. Мы добавили высокоуровневый интерфейс
только к тем настройкам, которые кажутся нам наиболее важным для большинства только к тем настройкам, которые кажутся нам наиболее важным для большинства
пользователей. Из соображений удобства мы добавили механизмы, обеспечивающие пользователей. Из соображений удобства мы добавили механизмы, обеспечивающие
поддержку крупных единиц измерения (килобайты, мегабайты и т.д.) и поддержку крупных единиц измерения (килобайты, мегабайты и т.д.) и