Version v15.9 (2014-03-03 22:23) [AUTO]

This commit is contained in:
nnz1024
2014-03-03 22:23:00 +04:00
parent 7de2397a9b
commit 3046243a83

145
s4a.tex
View File

@@ -2702,7 +2702,7 @@ systemd 187.}:
\footnote{Прим. перев.: Начиная с systemd версии 206, значительная часть \footnote{Прим. перев.: Начиная с systemd версии 206, значительная часть
обсуждаемых здесь настроек вынесена на отдельную страницу обсуждаемых здесь настроек вынесена на отдельную страницу
\href{http://www.freedesktop.org/software/systemd/man/systemd.cgroup.html}% \href{http://www.freedesktop.org/software/systemd/man/systemd.cgroup.html}%
{systemd.cgroup(5)}. Начиная с systemd 207, эта страница переименована в {systemd.cgroup(5)}. Начиная с systemd 208, эта страница переименована в
\href{http://www.freedesktop.org/software/systemd/man/systemd.resource-control.html}% \href{http://www.freedesktop.org/software/systemd/man/systemd.resource-control.html}%
{systemd.resource-control(5)}.}. Если вам потребуется дополнительная информация, {systemd.resource-control(5)}.}. Если вам потребуется дополнительная информация,
вы можете обратиться к ним. вы можете обратиться к ним.
@@ -2797,7 +2797,14 @@ PrivateTmp=yes
присутствуют: сокеты размещаются в защищенном подкаталоге, который создается на присутствуют: сокеты размещаются в защищенном подкаталоге, который создается на
ранних стадиях загрузки). Разумеется, для служб, использующих +/tmp+ в целях ранних стадиях загрузки). Разумеется, для служб, использующих +/tmp+ в целях
коммуникации, включение опции +PrivateTmp=yes+ недопустимо. К счастью, подобных коммуникации, включение опции +PrivateTmp=yes+ недопустимо. К счастью, подобных
служб сейчас уже не~так уж и много. служб сейчас уже не~так уж и много\footnote{Прим. перев.: Начиная с systemd 209,
поддерживается опция +JoinsNamespaceOf=+ (секция +[Unit]+), позволяющая
поместить два и более юнитов в одну <<песочницу>> (пространство имен), в
результате чего такие юниты смогут взаимодействовать между собой, как через
сетевой интерфейс обратной петли, так и через файлы в каталоге +/tmp+,
при этом оставаясь изолированными от остальной системы. Подробности можно
уточнить на странице руководства
\href{http://www.freedesktop.org/software/systemd/man/systemd.unit.html}{systemd.unit(5)}.}.
\end{caveat} \end{caveat}
Эта опция использует технологию пространств имен файловых систем (filesystem Эта опция использует технологию пространств имен файловых систем (filesystem
@@ -3527,14 +3534,16 @@ getty\footnote{Отметим, что +systemctl enable+ \emph{для экзем
\texttt{ln -s /usr/lib/systemd/system/serial-getty@.service \texttt{ln -s /usr/lib/systemd/system/serial-getty@.service
/etc/systemd/system/getty.target.wants/serial-getty@ttyS2.service ; systemctl /etc/systemd/system/getty.target.wants/serial-getty@ttyS2.service ; systemctl
daemon-reload}.}\footnote{\label{ftn:enableserial}Прим. перев.: На самом деле, daemon-reload}.}\footnote{\label{ftn:enableserial}Прим. перев.: На самом деле,
работать с символьными ссылками придется даже в современных версиях systemd (на работать с символьными ссылками пришлось бы даже в более свежих версиях
момент написания этих строк, последней является версия 206), так как systemd (до 209 включительно), так как в файле +serial-getty@.service+
разработчики забыли включить в файл +serial-getty@.service+ секцию +[Install]+, отсутствовала секция +[Install]+, в результате чего попытка выполнения
в результате чего попытка выполнения +systemctl enable+ для экземпляра +systemctl enable+ для экземпляра соответствующей службы приводила к
соответствующей службы ведет к закономерной ошибке. Впрочем, исправить это закономерной ошибке. Данная проблема была устранена только в systemd 210.
несложно: достаточно скопировать данный файл в +/etc/systemd/system/+, после В~случае использования более старых версий, исправить ее можно и самостоятельно:
чего дописать в него секцию +[Install]+ с параметром +WantedBy=getty.target+, а достаточно скопировать указанный файл из +/usr/lib/systemd/system/+ в
затем выполнить +systemctl daemon-reload+.}: +/etc/systemd/system/+, после чего дописать в него секцию +[Install]+,
содержащую параметр +WantedBy=getty.target+, и затем выполнить
+systemctl daemon-reload+.}:
\begin{Verbatim} \begin{Verbatim}
# systemctl enable serial-getty@ttyS2.service # systemctl enable serial-getty@ttyS2.service
# systemctl start serial-getty@ttyS2.service # systemctl start serial-getty@ttyS2.service
@@ -3576,8 +3585,9 @@ daemon-reload}.}\footnote{\label{ftn:enableserial}Прим. перев.: На с
а также сообщения, которые процессы служб выводят на STDOUT и STDERR. Полученная а также сообщения, которые процессы служб выводят на STDOUT и STDERR. Полученная
информация индексируется и предоставляется пользователю по запросу. Journal информация индексируется и предоставляется пользователю по запросу. Journal
может работать одновременно с традиционными демоном syslog (например, rsyslog может работать одновременно с традиционными демоном syslog (например, rsyslog
или syslog-ng), либо полностью его заменять. Более подробно см. в или syslog-ng), либо полностью его заменять. За подробностями стоит
\href{http://0pointer.de/blog/projects/the-journal.html}{первом анонсе}. обратиться к \href{http://0pointer.de/blog/projects/the-journal.html}{первому
анонсу}.
Journal был включен в Fedora начиная с F17. В Fedora~18 journal вырос в мощный и Journal был включен в Fedora начиная с F17. В Fedora~18 journal вырос в мощный и
удобный механизм работы с системным журналом. Однако, и в~F17, и в~F18 journal удобный механизм работы с системным журналом. Однако, и в~F17, и в~F18 journal
@@ -4090,9 +4100,9 @@ systemd создавать соответствующие группы, доба
документации}. Отметим, что из-за планируемого прекращения поддержки параметра документации}. Отметим, что из-за планируемого прекращения поддержки параметра
+memory.soft_limit_in_bytes+ на уровне ядра, опция +MemorySoftLimit=+ была +memory.soft_limit_in_bytes+ на уровне ядра, опция +MemorySoftLimit=+ была
\href{http://cgit.freedesktop.org/systemd/systemd/commit/?id=ddca82aca08712a302cfabdbe59f73ee9ed3f73a}% \href{http://cgit.freedesktop.org/systemd/systemd/commit/?id=ddca82aca08712a302cfabdbe59f73ee9ed3f73a}%
{удалена} из systemd начиная с версии 207.}. При этом поддерживаются суффиксы K, {удалена} из systemd, начиная с версии 208.}. При этом поддерживаются суффиксы
M, G и T, обозначающие соответственно, килобайт, мегабайт, гигабайт и терабайт K, M, G и T, обозначающие соответственно, килобайт, мегабайт, гигабайт и
(по основанию 1024). терабайт (по основанию 1024).
\begin{Verbatim} \begin{Verbatim}
.include /usr/lib/systemd/system/httpd.service .include /usr/lib/systemd/system/httpd.service
@@ -4416,7 +4426,11 @@ $ gdbus call --system --dest org.freedesktop.systemd1 --object-path /org/freedes
те, которые пока не~поддерживают, ее те, которые пока не~поддерживают, ее
\href{http://0pointer.de/blog/projects/socket-activation.html}{не~так уж} и \href{http://0pointer.de/blog/projects/socket-activation.html}{не~так уж} и
\href{http://0pointer.de/blog/projects/socket-activation2.html}{сложно} \href{http://0pointer.de/blog/projects/socket-activation2.html}{сложно}
добавить). Реализованный в systemd механизм управления добавить\footnote{Прим. перев.: Начиная с версии 209, в состав systemd входит
утилита
\hreftt{http://www.freedesktop.org/software/systemd/man/systemd-socket-proxyd.html}%
{systemd-socket-proxyd}, позволяющая использовать сокет-активацию даже для
служб, которые ее не~поддерживают.}). Реализованный в systemd механизм управления
\hyperref[sec:instances]{экземплярами служб} позволяет подготовить \hyperref[sec:instances]{экземплярами служб} позволяет подготовить
универсальные шаблоны конфигурации служб, и в соответствии с ними для каждого универсальные шаблоны конфигурации служб, и в соответствии с ними для каждого
сайта будет запускаться свой экземпляр службы. Кроме того, не~стоит забывать, сайта будет запускаться свой экземпляр службы. Кроме того, не~стоит забывать,
@@ -4545,14 +4559,22 @@ ListenStream=23
слушать 23-й TCP-порт хоста. В примере выбран именной 23-й, потому что 22-й слушать 23-й TCP-порт хоста. В примере выбран именной 23-й, потому что 22-й
скорее всего окажется занят SSH-сервером самого хоста. nspawn виртуализует скорее всего окажется занят SSH-сервером самого хоста. nspawn виртуализует
списки процессов и точек монтирования, но не~сетевые стеки, поэтому порты хоста списки процессов и точек монтирования, но не~сетевые стеки, поэтому порты хоста
и гостей не~должны конфликтовать\footnote{Прим. перев.: Ограниченные возможности и гостей не~должны конфликтовать\footnote{Прим. перев.: До выхода 209 версии
виртуализации сети в +systemd-nspawn+ значительно затрудняют использование systemd, возможности по виртуализации сети в +systemd-nspawn+ были весьма
описываемой технологии. Ее практическое применение будет иметь смысл ограниченными (поддерживалась только полная изоляция сети от хоста), что весьма
либо в lxc-libvirt, либо после расширения возможностей nspawn. Впрочем, опытные затрудняло использование описываемой технологии. Впрочем, опытные администраторы
администраторы легко могут найти обходные пути, например: присваивание хосту легко могли найти обходные пути, например: присваивание хосту дополнительного
дополнительного IP-адреса (безо всякой виртуализации, командой +ip addr add+) и IP-адреса (безо всякой виртуализации, командой +ip addr add+) и привязка
привязка слушающих сокетов к конкретным адресам (в параметре +ListenStream=+ слушающих сокетов к конкретным адресам (в параметре +ListenStream=+ сокет-файлов
сокет-файлов и/или в директиве +ListenAddress+ файла +sshd_config+ хоста).}. и/или в директиве +ListenAddress+ файла +sshd_config+ хоста). Начиная с systemd
версии 209, +systemd-nspawn+ предоставляет довольно широкие возможности по
виртуализации сети: проброс сетевого интерфейса хоста в контейнер
(+--network-interface=+), а также создание в контейнере виртуального сетевого
интерфейса (+--network-veth+), связывающего его с хостом. Такой виртуальный
интерфейс при необходимости может быть объединен в мост с интерфейсами хоста
(+--network-bridge=+), что обеспечит доступ из контейнера к соответствующим
сегментам сети. Подробности см. на~странице руководства
\href{http://www.freedesktop.org/software/systemd/man/systemd-nspawn.html}{systemd-nspawn(1)}.}.
Пока что systemd, работающий внутри контейнера, не~знает, что делать с тем Пока что systemd, работающий внутри контейнера, не~знает, что делать с тем
сокетами, которые ему передает systemd хоста. Если вы попробуете подключиться к сокетами, которые ему передает systemd хоста. Если вы попробуете подключиться к
@@ -4776,9 +4798,8 @@ systemd 198, необязательно копировать файл целик
Чтобы обеспечить автоматически запуск getty на этом порту при каждой загрузке, Чтобы обеспечить автоматически запуск getty на этом порту при каждой загрузке,
нужно поместить соответствующую символьную ссылку в каталог нужно поместить соответствующую символьную ссылку в каталог
+getty.target.wants/+\footnote{Прим. перев.: Приведенная в оригинале команда +getty.target.wants/+\footnote{Прим. перев.: Приведенная в оригинале команда
+systemctl enable serial-getty@ttyS2.service+ работать не~будет (по крайней +systemctl enable serial-getty@ttyS2.service+ в systemd версии 209 и ниже
мере, в версиях до 206 включительно). Подробнее работать не~будет. Подробнее см.~примечание~\ref{ftn:enableserial}.}:
см.~примечание~\ref{ftn:enableserial}.}:
\begin{Verbatim} \begin{Verbatim}
# ln -s /usr/lib/systemd/system/serial-getty@.service \ # ln -s /usr/lib/systemd/system/serial-getty@.service \
> /etc/systemd/system/getty.target.wants/serial-getty@ttyS2.service > /etc/systemd/system/getty.target.wants/serial-getty@ttyS2.service
@@ -4953,8 +4974,8 @@ $ systemd --test --system --unit=foobar.target
\section{Диагностика неполадок\sfnote{Перевод статьи \section{Диагностика неполадок\sfnote{Перевод статьи
<<\href{http://freedesktop.org/wiki/Software/systemd/Debugging}{Debugging <<\href{http://freedesktop.org/wiki/Software/systemd/Debugging}{Debugging
systemd Problems}>> с официального сайта проекта, по состоянию на 2013-05-26 systemd Problems}>> с официального сайта проекта, по состоянию на 2013-12-20
08:34:30 (коммит 10ae3).}} 10:44:01 (коммит abb5a).}}
\subsection{Диагностика проблем с загрузкой} \subsection{Диагностика проблем с загрузкой}
@@ -5086,7 +5107,7 @@ systemctl enable debug-shell.service
\begin{Verbatim} \begin{Verbatim}
cd $ПУТЬ_К_ВАШЕМУ_КОРНЮ/etc/systemd/system cd $ПУТЬ_К_ВАШЕМУ_КОРНЮ/etc/systemd/system
mkdir -p sysinit.target.wants mkdir -p sysinit.target.wants
ln -s /lib/systemd/system/debug-shell.service sysinit.target.wants/ ln -s /usr/lib/systemd/system/debug-shell.service sysinit.target.wants/
\end{Verbatim} \end{Verbatim}
Отладочная оболочка будет запущена с правами +root+ на консоли +tty9+ Отладочная оболочка будет запущена с правами +root+ на консоли +tty9+
@@ -5165,8 +5186,8 @@ sync && poweroff -f
systemd.log_level=debug systemd.log_target=kmsg log_buf_len=1M enforcing=0 systemd.log_level=debug systemd.log_target=kmsg log_buf_len=1M enforcing=0
\end{Verbatim} \end{Verbatim}
\item Создайте файл +/lib/systemd/system-shutdown/debug.sh+, добавьте \item Создайте файл +/usr/lib/systemd/system-shutdown/debug.sh+,
ему право на запуск и запишите в него следующие строки: добавьте ему право на запуск и запишите в него следующие строки:
\begin{Verbatim} \begin{Verbatim}
#!/bin/sh #!/bin/sh
mount -o remount,rw / mount -o remount,rw /
@@ -5285,7 +5306,7 @@ systemctl dump > systemd-dump.txt
\section{Совместимость с SysV\sfnote{Перевод статьи \section{Совместимость с SysV\sfnote{Перевод статьи
<<\href{http://www.freedesktop.org/wiki/Software/systemd/Incompatibilities}% <<\href{http://www.freedesktop.org/wiki/Software/systemd/Incompatibilities}%
{Compatibility with SysV}>> с официального сайта проекта, по {Compatibility with SysV}>> с официального сайта проекта, по
состоянию на 2013-05-18 08:20:25 (коммит fa003).}} состоянию на 2013-10-06 21:37:19 (коммит 4db1c).}}
systemd обеспечивает высокий уровень совместимости с поведением классической systemd обеспечивает высокий уровень совместимости с поведением классической
системы инициализации SysV init, реализованной во многих дистрибутивах. Это системы инициализации SysV init, реализованной во многих дистрибутивах. Это
@@ -5421,7 +5442,7 @@ API для скриптов. Тем не~менее, существует ряд
\section{Предсказуемые имена сетевых интерфейсов\sfnote{Перевод статьи \section{Предсказуемые имена сетевых интерфейсов\sfnote{Перевод статьи
<<\href{http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames}% <<\href{http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames}%
{Predictable Network Interface Names}>> с официального сайта проекта, по {Predictable Network Interface Names}>> с официального сайта проекта, по
состоянию на 2013-09-10 01:52:06 (коммит c0524).}} состоянию на 2014-02-21 15:36:45 (коммит 5613f).}}
Начиная с версии 197, systemd/udev присваивает сетевым интерфейсам (Ethernet, Начиная с версии 197, systemd/udev присваивает сетевым интерфейсам (Ethernet,
WLAN, WWAN\footnote{Прим. перев.: WWAN (Wireless Wide Area Network)~--- WLAN, WWAN\footnote{Прим. перев.: WWAN (Wireless Wide Area Network)~---
@@ -5562,40 +5583,65 @@ systemd/udev\footnote{Прим. перев.: См. коммит
\begin{enumerate} \begin{enumerate}
\item Вы можете полностью отключить новую схему, вернувшись к \item Вы можете полностью отключить новую схему, вернувшись к
классическим непредсказуемым именам. Для этого достаточно классическим непредсказуемым именам. Для этого достаточно
заблокировать (замаскировать) соответствующий файл правил udev: заблокировать (замаскировать) файл правил udev, отвечающий за
именование интерфейсов:
\begin{Verbatim} \begin{Verbatim}
ln -s /dev/null /etc/udev/rules.d/80-net-name-slot.rules ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules
\end{Verbatim} \end{Verbatim}
(Заметим, что в версиях systemd со 197 по 208 соответствующий
файл назывался +80-net-name-slot.rules+.)
\item Вы можете вручную назначить интерфейсам наиболее понятные для вас \item Вы можете вручную назначить интерфейсам наиболее понятные для вас
имена (например, +internet0+, +dmz0+, +lan0+). Для этого, имена (например, +internet0+, +dmz0+, +lan0+). Для этого,
подготовьте свои собственные правила, указав в них нужные имена подготовьте свои собственные правила, указав в них нужные имена
при помощи параметра +NAME+, после чего сохраните их в файл с при помощи параметра +NAME+, после чего сохраните их в файл с
более высоким приоритетом, чем правила по умолчанию, например, более высоким приоритетом, чем правила по умолчанию, например,
+/etc/udev/rules.d/70-my-net-names.rules+. (Приоритет файлов +/etc/udev/rules.d/70-my-net-names.rules+\footnote{Прим. перев.:
определяется на основании алфавитной сортировки их имен.) Начиная с systemd 209, существует более удобный способ настройки
имен и других параметров сетевых интерфейсов (MAC-адреса,
скорости, дуплекса, MTU, состояния Wake on LAN)~--- он описан в
секции <<Network Link Configuration>> на странице руководства
\href{http://www.freedesktop.org/software/systemd/man/udev.html#Network%20Link%20Configuration}{udev(7)}.}.
(Приоритет файлов определяется на основании алфавитной
сортировки их имен.)
\item Вы можете скорректировать правила, используемые по умолчанию, \item Вы можете скорректировать правила, используемые по умолчанию,
например, задействовав схему именования интерфейсов по например, задействовав схему именования интерфейсов по
MAC-адресам. Для, этого скопируйте файл правил в каталог +/etc+ MAC-адресам. Для, этого скопируйте соответствующий
конфигурационный файл в каталог +/etc+
\begin{Verbatim} \begin{Verbatim}
cp /usr/lib/udev/rules.d/80-net-name-slot.rules /etc/udev/rules.d/80-net-name-slot.rules cp /usr/lib/systemd/network/99-default.link /etc/systemd/network/99-default.link
\end{Verbatim} \end{Verbatim}
после чего измените его так, как считаете нужным. после чего измените значение параметра +NamePolicy=+ так, как
считаете нужным (подробнее см.~секцию <<Network Link
Configuration>> на странице руководства
\href{http://www.freedesktop.org/software/systemd/man/udev.html#Network%20Link%20Configuration}{udev(7)})%
\footnote{Прим. перев.: В systemd версий со 197 по 208, за
логику именования интерфейсов отвечал файл правил udev
+/usr/lib/udev/rules.d/80-net-name-slot.rules+, поэтому
копировать из +/usr/lib+ в +/etc+ и редактировать нужно было
именно его. Начиная с версии 209, управление именованием
интерфейсов вынесено в udev-утилиту (built-in) +net_setup_link+,
которая вызывается через файл правил
+/etc/udev/rules.d/80-net-setup-link.rules+ и настраивается
через файлы +*.link+, размещенные в каталогах
+{/etc,/run,/usr/lib}/systemd/network+. За подготовку исходных
данных, на основе которых формируются имена интерфейсов, как и
раньше, отвечает утилита +net_id+.}.
\end{enumerate} \end{enumerate}
Кроме того, начиная с systemd версии 199, поддерживается параметр загрузки Кроме того, начиная с systemd версии 199, поддерживается параметр загрузки
+net.ifnames=0+, позволяющий отключить механизм предсказуемых имен (указание его +net.ifnames=0+, позволяющий отключить механизм предсказуемых имен (указание его
в файле конфигурации загрузчика эквивалентно первому из вышеперечисленных в файле конфигурации загрузчика практически эквивалентно первому из
вариантов). вышеперечисленных вариантов).
\subsection{Как именно работает новая схема?} \subsection{Как именно работает новая схема?}
Подробности технической реализации описаны в блоке комментариев в Подробности технической реализации описаны в блоке комментариев в
\href{http://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-net_id.c#n20}% \href{http://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-net_id.c#n20}%
{исходном коде net-id built-in}. Ознакомьтесь с ним, если у вас возникают {исходном коде net\_id built-in}. Ознакомьтесь с ним, если у вас возникают
вопросы, касающиеся расшифровки новых имен\footnote{Прим. перев.: Далее вопросы, касающиеся расшифровки новых имен\footnote{Прим. перев.: Далее
приводится перевод упомянутого блока комментариев. Последним коммитом, приводится перевод упомянутого блока комментариев. Последним коммитом,
затронувшим данный файл, на момент перевода является a4bbe от 8 июля затронувшим данный файл, на момент перевода является e0d4a от 9 января
2013 г.}. 2014 г.}.
\begin{Verbatim} \begin{Verbatim}
Предсказуемые имена сетевых интерфейсов формируются на основании: Предсказуемые имена сетевых интерфейсов формируются на основании:
@@ -5606,8 +5652,9 @@ cp /usr/lib/udev/rules.d/80-net-name-slot.rules /etc/udev/rules.d/80-net-name-sl
Первые два символа в имени определяют тип интерфейса: Первые два символа в имени определяют тип интерфейса:
en -- ethernet en -- ethernet
wl -- wlan sl -- SLIP (IP через последовательный порт)
ww -- wwan wl -- WLAN
ww -- WWAN
Последующие символы определяеются используемой схемой: Последующие символы определяеются используемой схемой:
o<index> -- для устройств, встроенных в материнскую плату o<index> -- для устройств, встроенных в материнскую плату
@@ -5651,7 +5698,7 @@ Multi-function PCI устройство с двумя портами:
ID_NET_NAME_MAC=enx78e7d1ea46dc ID_NET_NAME_MAC=enx78e7d1ea46dc
ID_NET_NAME_PATH=enp2s0f1 ID_NET_NAME_PATH=enp2s0f1
Подключенная к PCI wlan-карта: Подключенная к PCI WLAN-карта:
/sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/net/wlp3s0 /sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/net/wlp3s0
ID_NET_NAME_MAC=wlx0024d7e31130 ID_NET_NAME_MAC=wlx0024d7e31130
ID_NET_NAME_PATH=wlp3s0 ID_NET_NAME_PATH=wlp3s0