Version v8.6 (2012-01-02 16:44) [AUTO]

This commit is contained in:
nnz1024
2012-01-02 16:44:00 +04:00
parent 56a4425e5a
commit aaa2ec62eb

94
s4a.tex
View File

@@ -666,9 +666,11 @@ Bug Reporting Tool, службы, занимающейся сбором crash du
socket-активацию, рассмотрены в статье socket-активацию, рассмотрены в статье
\href{http://0pointer.de/blog/projects/systemd.html}{Rethinking \href{http://0pointer.de/blog/projects/systemd.html}{Rethinking
PID~1}, в которой systemd был впервые представлен широкой PID~1}, в которой systemd был впервые представлен широкой
публике. Ее русский перевод можно прочитать здесь: публике\footnote{Прим. перев.: Ее русский перевод (сделанный
совершенно независимо от данного документа, совсем другим
человеком) можно прочитать здесь:
\href{http://tux-the-penguin.blogspot.com/2010/09/systemd.html}{часть~1}, \href{http://tux-the-penguin.blogspot.com/2010/09/systemd.html}{часть~1},
\href{http://tux-the-penguin.blogspot.com/2010/09/systemd-ii.html}{часть~2}. \href{http://tux-the-penguin.blogspot.com/2010/09/systemd-ii.html}{часть~2}.}.
Возвращаясь к нашему примеру: в данном случае ценной Возвращаясь к нашему примеру: в данном случае ценной
информацией о зависимостях является только строка информацией о зависимостях является только строка
+Required-Start: $syslog+, сообщающая, что для работы +Required-Start: $syslog+, сообщающая, что для работы
@@ -764,14 +766,14 @@ systemd считает службу запущенной с момента за
играет важную роль при выполнении команды +systemctl enable+, задавая, в каких играет важную роль при выполнении команды +systemctl enable+, задавая, в каких
условиях должен активироваться устанавливаемый юнит. В нашем примере, служба условиях должен активироваться устанавливаемый юнит. В нашем примере, служба
abrtd будет активироваться при переходе в состояние +multi-user.target+, abrtd будет активироваться при переходе в состояние +multi-user.target+,
т.е., при каждой нормальной загрузке\footnote{Обратите внимание, что режим т.е., при каждой нормальной\footnote{Прим. перев.: К <<ненормальным>> загрузкам
графической загрузки в systemd (+graphical.target+, аналог runlevel 5 можно отнести, например, загрузки в режимах +emergency.target+ или
в SysV) является надстройкой над режимом многопользовательской консольной +rescue.target+ (является аналогом первого уровня исполнения в классической
загрузки (+multi-user.target+, аналог runlevel 3 в SysV). Таким SysV).} загрузке\footnote{Обратите внимание, что режим графической загрузки в
образом, все службы, запускаемые в режиме +multi-user.target+, будут systemd (+graphical.target+, аналог runlevel 5 в SysV) является надстройкой над
также запускаться и в режиме +graphical.target+.} (к <<ненормальным>> режимом многопользовательской консольной загрузки (+multi-user.target+, аналог
можно отнести, например, загрузки в режиме +emergency.target+, который runlevel 3 в SysV). Таким образом, все службы, запускаемые в режиме
является аналогом первого уровня исполнения в классической SysV). +multi-user.target+, будут также запускаться и в режиме +graphical.target+.}.
Вот и все. Мы получили минимальный рабочий service-файл systemd. Чтобы Вот и все. Мы получили минимальный рабочий service-файл systemd. Чтобы
проверить его работоспособность, скопируем его в проверить его работоспособность, скопируем его в
@@ -1347,17 +1349,17 @@ Linux, которая позиционируется как современна
полноценной ОС, функционирующей в контейнере. Изнутри контейнера невозможно полноценной ОС, функционирующей в контейнере. Изнутри контейнера невозможно
увидеть процессы, которые находятся вне его. Контейнер сможет пользоваться сетью увидеть процессы, которые находятся вне его. Контейнер сможет пользоваться сетью
хоста\footnote{Прим. перев.: Впоследствии в +systemd-nspawn+ была добавлена хоста\footnote{Прим. перев.: Впоследствии в +systemd-nspawn+ была добавлена
опция +--private-network+, изолирующая систему внутри контейнера от сети хоста: опция +--private-network+, позволяющая изолировать систему внутри контейнера от
такая система будет видеть только свой собственный интерфейс обратной петли.}, сети хоста: такая система будет видеть только свой собственный интерфейс
однако не~имеет возможности изменить ее настройки (это может привести к серии обратной петли.}, однако не~имеет возможности изменить ее настройки (это может
ошибок в процессе загрузки гостевой ОС, но ни~одна из этих ошибок не~должна быть привести к серии ошибок в процессе загрузки гостевой ОС, но ни~одна из этих
критической). Контейнер получает доступ к +/sys+ и +/proc/sys+, однако, во ошибок не~должна быть критической). Контейнер получает доступ к +/sys+ и
избежание вмешательства контейнера в конфигурацию ядра и аппаратного обеспечения +/proc/sys+, однако, во избежание вмешательства контейнера в конфигурацию ядра и
хоста, эти каталоги будут смонтированы только для чтения. Обратите внимание, что аппаратного обеспечения хоста, эти каталоги будут смонтированы только для
эта защита блокирует лишь \emph{случайные}, \emph{непредвиденные} попытки чтения. Обратите внимание, что эта защита блокирует лишь \emph{случайные},
изменения параметров. При необходимости, процесс внутри контейнера, обладающий \emph{непредвиденные} попытки изменения параметров. При необходимости, процесс
достаточными полномочиями, сможет перемонтировать эти файловые системы в режиме внутри контейнера, обладающий достаточными полномочиями, сможет перемонтировать
чтения-записи. эти файловые системы в режиме чтения-записи.
Итак, что же такого хорошего в +systemd-nspawn+? Итак, что же такого хорошего в +systemd-nspawn+?
\begin{enumerate} \begin{enumerate}
@@ -1820,14 +1822,13 @@ systemd, но уже сейчас в их число входят практич
в systemd базовую поддержку Ubuntu и в systemd базовую поддержку Ubuntu и
\href{https://wiki.ubuntu.com/systemd}{подготовил} соответствующие пакеты, \href{https://wiki.ubuntu.com/systemd}{подготовил} соответствующие пакеты,
однако его инициатива не~встретила поддержки среди менеджеров Canonical. На однако его инициатива не~встретила поддержки среди менеджеров Canonical. На
момент написания этих строк (май 2011 года) проект остается заброшенным уже пять момент написания этих строк проект остается заброшенным с декабря 2010~г.}. В
месяцев (с середины декабря 2010~г.).}. В этом есть что-то от <<проблемы курицы этом есть что-то от <<проблемы курицы и яйца>>: стандарт становится настоящим
и яйца>>: стандарт становится настоящим стандартом только тогда, когда ему стандартом только тогда, когда ему начинают следовать. В будущем мы намерены
начинают следовать. В будущем мы намерены аккуратно форсировать процесс перехода аккуратно форсировать процесс перехода на новые конфигурационные файлы:
на новые конфигурационные файлы: поддержка старых файлов будет удалена из поддержка старых файлов будет удалена из systemd. Разумеется, этот процесс будет
systemd. Разумеется, этот процесс будет идти медленно, шаг за шагом. Но конечной идти медленно, шаг за шагом. Но конечной его целью является переход всех
его целью является переход всех дистрибутивов на единый набор базовых дистрибутивов на единый набор базовых конфигурационных файлов.
конфигурационных файлов.
Многие из этих файлов используются не~только программами для настройки системы, Многие из этих файлов используются не~только программами для настройки системы,
но и апстримными проектами. Например, мы предлагаем проектам Mono, Java, WINE и но и апстримными проектами. Например, мы предлагаем проектам Mono, Java, WINE и
@@ -2151,20 +2152,19 @@ systemd?
\emph{foobar}~--- строка, идентифицирующая службу (проще говоря, ее имя), а \emph{foobar}~--- строка, идентифицирующая службу (проще говоря, ее имя), а
+.service+~--- суффикс, присутствующий в именах всех файлов конфигурации служб. +.service+~--- суффикс, присутствующий в именах всех файлов конфигурации служб.
Сами эти файлы могут находиться в каталогах +/etc/systemd/systemd+ и Сами эти файлы могут находиться в каталогах +/etc/systemd/systemd+ и
+/lib/systemd/system+ (а также, возможно, и в других\footnote{Прим. перев.: В +/lib/systemd/system+ (а также, возможно, и в других\footnote{Прим. перев.:
качестве <<других>> каталогов, в которых выполняется поиск юнит-файлов, можно Перечень каталогов, в которых выполняется поиск общесистемных юнит-файлов,
упомянуть +/run/systemd/system+, в который помещаются временные файлы приведен на странице руководства
конфигурации, созданные администратором или программами-генераторами и \href{http://www.0pointer.de/public/systemd-man/systemd.html}{systemd(1)}
действующие только текущем сеансе, и +/usr/lib/systemd/system+, в котором (раздел <<System unit directories>>). Указанные выше каталоги
находятся юнит-файлы для обычных служб, запускаемых на поздних стадиях загрузки +/etc/systemd/systemd+ и +/lib/systemd/system+ соответствуют значениям по
(то время, как в упомянутом каталоге +/lib/systemd/system+ находятся файлы умолчанию для упомянутых там переменных pkg-config +systemdsystemconfdir+ и
конфигурации ключевых системных юнитов, которые требуются на раннем этапе +systemdsystemunitdir+ соответственно.}). Для служб, работающих в нескольких
загрузки, до монтирования +/usr+).}). Для служб, работающих в экземплярах, эта схема становится немного сложнее:
нескольких экземплярах, эта схема становится немного сложнее: \emph{foobar}+@+\emph{quux}+.service+, где \emph{foobar}~--- имя службы, общее
\emph{foobar}+@+\emph{quux}+.service+, где \emph{foobar}~--- имя службы, для всех экземпляров, а \emph{quux}~--- идентификатор конкретного экземпляра.
общее для всех экземпляров, а \emph{quux}~--- идентификатор конкретного Например, +serial-gett@ttyS2.service+~--- это служба getty для COM-порта,
экземпляра. Например, +serial-gett@ttyS2.service+~--- это служба getty для запущенная на +ttyS2+.
COM-порта, запущенная на +ttyS2+.
При необходимости, экземпляры служб можно легко создать динамически. Скажем, вы При необходимости, экземпляры служб можно легко создать динамически. Скажем, вы
можете, безо всяких дополнительных настроек, запустить новый экземпляр getty на можете, безо всяких дополнительных настроек, запустить новый экземпляр getty на
@@ -2478,10 +2478,10 @@ StandardInput=socket
\end{Verbatim} \end{Verbatim}
Большинство представленных здесь опций, как всегда, понятны интуитивно. Особое Большинство представленных здесь опций, как всегда, понятны интуитивно. Особое
внимание стоит обратить лишь на +StandardInput=socket+, которая, собственно, и внимание стоит обратить лишь на строчку +StandardInput=socket+, которая,
включает для данной службы режим совместимости с inetd-активацией. Опция собственно, и включает для данной службы режим совместимости с inetd-активацией.
+StandardInput=+ позволяет указать, куда будет подключен поток STDIN процесса Опция +StandardInput=+ позволяет указать, куда будет подключен поток STDIN
данной службы (подробности см. процесса данной службы (подробности см.
\href{http://0pointer.de/public/systemd-man/systemd.exec.html}{на странице \href{http://0pointer.de/public/systemd-man/systemd.exec.html}{на странице
руководства}). Задав для нее значение +socket+, мы обеспечиваем подключение руководства}). Задав для нее значение +socket+, мы обеспечиваем подключение
этого потока к сокету соединения, как того и требует механизм inetd-активации. этого потока к сокету соединения, как того и требует механизм inetd-активации.