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