Version v14.4 (2013-03-08 22:32) [AUTO]

This commit is contained in:
nnz1024
2013-03-08 22:32:00 +04:00
parent 237904f0df
commit 751d5d1bae

73
s4a.tex
View File

@@ -419,7 +419,12 @@ alias psc='ps xawf -eo pid,user,cgroup,args'
Альтернативный способ получить ту же информацию~--- воспользоваться утилитой Альтернативный способ получить ту же информацию~--- воспользоваться утилитой
+systemd-cgls+, входящей в комплект поставки systemd. Она отображает иерархию +systemd-cgls+, входящей в комплект поставки systemd. Она отображает иерархию
контрольных групп в виде псевдографической диаграммы-дерева: контрольных групп в виде псевдографической диаграммы-дерева\footnote{Прим.
перев.: Стоит заметить, что в нижеприведенном листинге используется
ASCII-псевдографика. Между тем, уже довольно давно отображение иерархии
процессов в +systemd-cgls+ и +systemctl status+ производится в более
выразительной ├юникодной └псевдографике. ASCII-вариант выводится только в том
случае, если консоль не~поддерживает Unicode.}:
\begin{landscape} \begin{landscape}
\begin{Verbatim}[fontsize=\small] \begin{Verbatim}[fontsize=\small]
@@ -2127,7 +2132,7 @@ systemd?
позволяющей прочитать из файла набор переменных окружения, который будет позволяющей прочитать из файла набор переменных окружения, который будет
установлен при запуске службы. Если же для задания настроек вам необходим установлен при запуске службы. Если же для задания настроек вам необходим
полноценный язык программирования~--- ничто не~мешает им воспользоваться. полноценный язык программирования~--- ничто не~мешает им воспользоваться.
Например, вы можете создайть в +/usr/lib/<your package>/+ простой скрипт, Например, вы можете создать в +/usr/lib/<your package>/+ простой скрипт,
который включает соответствующие файлы, а затем запускает бинарник демона через который включает соответствующие файлы, а затем запускает бинарник демона через
+exec+. После чего достаточно просто указать этот скрипт в опции +ExecStart=+ +exec+. После чего достаточно просто указать этот скрипт в опции +ExecStart=+
вместо бинарника демона. вместо бинарника демона.
@@ -3132,7 +3137,7 @@ URI, ссылающиеся на документацию, формируютс
Да, кстати: если вас интересует общий обзор процесса загрузки systemd, то вам Да, кстати: если вас интересует общий обзор процесса загрузки systemd, то вам
стоит обратить внимание на стоит обратить внимание на
\href{http://www.freedesktop.org/software/systemd/man/bootup.html}{новую \href{http://www.freedesktop.org/software/systemd/man/bootup.html}{новую
страницу руководства}, где представлена псевгдорафическая потоковая диаграмма, страницу руководства}, где представлена псевдографическая потоковая диаграмма,
описывающая процесс загрузки и роль ключевых юнитов. описывающая процесс загрузки и роль ключевых юнитов.
\section{Сторожевые таймеры} \section{Сторожевые таймеры}
@@ -3628,7 +3633,10 @@ Journal был включен в Fedora начиная с F17. В Fedora~18 jour
большинства лог-файлов. При этом авторы четко разделяют полномочия групп +adm+ и большинства лог-файлов. При этом авторы четко разделяют полномочия групп +adm+ и
+wheel+: если последняя используется для предоставления прав \emph{изменять} +wheel+: если последняя используется для предоставления прав \emph{изменять}
что-либо в системе, то первая дает возможность лишь \emph{просматривать} что-либо в системе, то первая дает возможность лишь \emph{просматривать}
системную информацию.}: системную информацию. Начиная с версии systemd 198, группа-владелец файлов
журнала изменена с +adm+ на +systemd-journal+, однако штатный алгоритм установки
systemd все равно выдает права на их чтение группам +adm+ и +wheel+ (через
ACL).}:
\begin{Verbatim} \begin{Verbatim}
$ journalctl $ journalctl
\end{Verbatim} \end{Verbatim}
@@ -3804,7 +3812,7 @@ $ journalctl -F _SYSTEMD_UNIT
однако, начиная с релиза systemd 196, аналогичная функциональность доступна и однако, начиная с релиза systemd 196, аналогичная функциональность доступна и
для zsh.}! Это же просто прекрасно~--- вы можете просмотреть перечень значений для zsh.}! Это же просто прекрасно~--- вы можете просмотреть перечень значений
поля и выбрать из него нужно прямо при вводе выражения. Возьмем для примера поля и выбрать из него нужно прямо при вводе выражения. Возьмем для примера
метки SELinux. Помнится, имя поле начиналось с букв SE\ldots{} метки SELinux. Помнится, имя поля начиналось с букв SE\ldots{}
\begin{Verbatim}[commandchars=\\\{\}] \begin{Verbatim}[commandchars=\\\{\}]
$ journalctl _SE\textbf{<TAB>} $ journalctl _SE\textbf{<TAB>}
\end{Verbatim} \end{Verbatim}
@@ -3956,18 +3964,32 @@ CPUShares=1500
\end{Verbatim} \end{Verbatim}
Первая строка обеспечивает включение в нашу конфигурацию файла с настройками по Первая строка обеспечивает включение в нашу конфигурацию файла с настройками по
умолчанию, сделанными разработчиками Apache или его сопровождающими в вашем умолчанию, сделанными разработчиками Apache или его сопровождающими в вашем
дистрибутиве (если это включение не~указать явно, данный файл будет проигнорирован). дистрибутиве (если это включение не~указать явно, данный файл будет
Далее, мы указываем тот параметр, который хотим изменить. Сохраняем файл, проигнорирован). Далее, мы указываем тот параметр, который хотим
приказываем systemd перечитать конфигурацию, и перезапускаем Apache, чтобы изменить\footnote{Прим. перев.: В новых версиях systemd, начиная со 198, можно
настройки вступили в силу\footnote{Прим. перев.: systemd версий до 197 поступить проще: вместо того, чтобы создавать свой юнит-файл в каталоге +/etc+ и
включительно, не~поддерживает изменение параметров контрольных групп без включать в него содержимое штатного (из +/usr+), достаточно просто создать
перезапуска службы. Но вы можете узнать контрольную группу службы командой каталог +/etc/systemd/system/httpd.service.d/+ и поместить в него файл
наподобие +systemctl show -p ControlGroup avahi-daemon.service+, и выполнить +my_resource_limit.conf+ (суффикс +.conf+ обязателен), в котором указываются
настройки любым удобным для вас способом, например, через запись значений в только те настройки, которые необходимо изменить (последние две строки
псевдофайлы cgroupfs (разумеется, при следующем запуске службы к ней будут вышеприведенного листинга). Это никак не~отменяет основного конфигурационного
применены параметры, указанные в конфигурационном файле). Начиная с systemd 198, файла юнита (который может находиться в +/usr+ или +/etc+), однако настройки из
в программу +systemctl+ добавлена поддержка команд +set-cgroup-attr+, +.d+-каталогов имеют более высокий приоритет и могут перекрывать настройки
+unset-cgroup-attr+ и +get-cgroup-attr+.}: основного файла. Все вышесказанное относится и к другим примерам из этого
раздела.}. Сохраняем файл, приказываем systemd перечитать конфигурацию, и
перезапускаем Apache, чтобы настройки вступили в силу\footnote{Прим. перев.:
systemd версий до 197 включительно, не~поддерживает изменение параметров
контрольных групп без перезапуска службы. Но вы можете узнать контрольную группу
службы командой наподобие +systemctl show -p ControlGroup avahi-daemon.service+,
и выполнить настройки любым удобным для вас способом, например, через запись
значений в псевдофайлы cgroupfs (разумеется, при следующем запуске службы к ней
будут применены параметры, указанные в конфигурационном файле). Начиная с
systemd 198, в программу +systemctl+ добавлена поддержка команд
+set-cgroup-attr+, +unset-cgroup-attr+ и +get-cgroup-attr+, позволяющих
манипулировать практически всеми параметрами контрольных групп. При этом
поддерживается сохранение установленных таким образом параметров в виде
вспомогательных конфигурационных файлов в +.d+-каталогах (см. примечание
выше).}:
\begin{Verbatim} \begin{Verbatim}
systemctl daemon-reload systemctl daemon-reload
systemctl restart httpd.service systemctl restart httpd.service
@@ -4242,7 +4264,7 @@ fi
\end{Verbatim} \end{Verbatim}
Эта утилита возвращает код 0 (успех), обнаружив виртуализацию, или ненулевое Эта утилита возвращает код 0 (успех), обнаружив виртуализацию, или ненулевое
значение, если виртуализация не~выявлена. Кроме того, она выводит идентификатор значение, если виртуализация не~выявлена. Также она выводит идентификатор
обнаруженной системы виртуализации (согласно списку выше), если это не~было обнаруженной системы виртуализации (согласно списку выше), если это не~было
запрещено опцией +-q+. Кроме того, опции +-c+ и +-v+ позволяют ограничить запрещено опцией +-q+. Кроме того, опции +-c+ и +-v+ позволяют ограничить
проверки только механизмами виртуализации на уровне ОС, либо полной проверки только механизмами виртуализации на уровне ОС, либо полной
@@ -4343,8 +4365,8 @@ systemd в промышленных серверных платформах, м
Подобные конфигурации уже используются на рабочих серверах ряда компаний. В Подобные конфигурации уже используются на рабочих серверах ряда компаний. В
частности, специалисты из \href{https://www.getpantheon.com/}{Pantheon} частности, специалисты из \href{https://www.getpantheon.com/}{Pantheon}
используют такую схему для обслуживания масштабируемой инфраструктуры множества используют такую схему для обслуживания масштабируемой инфраструктуры множества
сайтов на базе Drupal. (Стоит упомянуть, что заслуга ее внедрения в Pantheon сайтов на базе Drupal. (Стоит упомянуть, что заслуга ее внедрения в компании
принадлежит Дэвиду Штрауссу. Дэвид, ты крут!) Pantheon принадлежит Дэвиду Штрауссу. Дэвид, ты крут!)
\subsection{Сокет-активация контейнеров} \subsection{Сокет-активация контейнеров}
@@ -4527,13 +4549,10 @@ systemd начнет прослушивать TCP-порт 23. При подкл
классические inetd-службы, кроме встроенных) или systemd (зависят от библиотеки классические inetd-службы, кроме встроенных) или systemd (зависят от библиотеки
+libsystemd-daemon.so+, либо содержат в исходниках заголовочный файл +libsystemd-daemon.so+, либо содержат в исходниках заголовочный файл
+sd-daemon.h+). Службы, которые сами открывают себе слушающий сокет и +sd-daemon.h+). Службы, которые сами открывают себе слушающий сокет и
не~содержат кода для приема уже открытого сокета, так активировать нельзя. не~содержат кода для приема уже открытого сокета, так активировать нельзя.}, а
Точнее, в случае с сетевыми и файловыми сокетами, все-таки можно, но первое те сокеты, которые будут настроены для прослушивания внутри контейнера, но
соединение/сообщение при этом будет <<потрачено>> на запуск контейнера, и до не~получены от хоста, будут активированы и доступны изнутри контейнера (а если
службы в итоге дойдут только последующие, начина со второго, что сводит выгоды это сетевые или файловые unix-сокеты, то и извне).
практически к нулю.}, а те сокеты, которые будут настроены для прослушивания
внутри контейнера, но не~получены от хоста, будут активированы и доступны
изнутри контейнера (а если это сетевые или файловые unix-сокеты, то и извне).
Итак, давайте отступим чуть назад и полюбуемся на результаты наших трудов. Что Итак, давайте отступим чуть назад и полюбуемся на результаты наших трудов. Что
мы получили в итоге? Возможность настраивать на одном хосте множество мы получили в итоге? Возможность настраивать на одном хосте множество