, Systemd упрощает управление службами Linux

Systemd упрощает управление службами Linux

Дональд А. Тиволт

 

Первая публикация на английском языке: Февраль 2022

Ссылка на продукт: 2291221

Все права защищены. Никакая часть этой книги не может быть воспроизведена, сохранена в поисковой системе или передана в любой форме или любыми средствами без предварительного письменного разрешения издателя, за исключением случаев кратких цитат, встроенных в критические статьи и обзоры.

При подготовке этой книги были предприняты все усилия чтобы гарантировать точность представленной информации. Тем не менее, информация, содержащаяся в этой книге, продаётся без гарантии в явном или неявном виде. Ни авторы, ни Packt Publishing, ни их дилеры и дистрибьюторы не будут нести ответственность за любые убытки, вызванные или предположительно вызванные прямо или косвенно этой книгой.

Packt Publishing пыталась предоставить информацию о товарных знаках обо всех компаниях и продуктов, упомянутых в данной книге для надлежащего использования капиталов. Тем не менее, Packt Publishing не может гарантировать точность этой информации.

Опубликовано Packt Publishing Ltd.

Livery Place

35 Livery Street

Birmingham B3 2PB, UK

ISBN 978-1-80181-164-4

www.packtpub.com

2022-10-09

 Состав исполнителей

Автор
Дональд А. Тиволт
Управляющий группой продуктов
Вильсон Д`суза
Управляющий издания продукта
Виджин Борича
Главный редактор
Эйрун Нэйдар
Редактор разработки содержимого
Рафьяа Хан
Технический редактор
Нитхик Черувэйкоудан
Литературный редактор
Safis Editing
Координатор проекта
Шейгун Сайни
Корректор
Safis Editing
Составитель указателя
Манжу Эйрейсан
Технолог
Нилиш Моухайт

Я бы хотел поблагодарить добрых ребят из Packt Publishing за то, что они превратили публикацию данной книги в столь гладкий процесс. Также я бы хотел поблагодарить своих кошек и опоссумов за то, что они любезно позволили мне применять свои имена в демонстрациях.

Донни

 Об авторе

Дональд А. Тиволт - вы можете звать его Донни - увлёкся Linux ещё в 2006 году и с тех пор работает с ним. Он обладает сертификатом безопасности 3 уровня Института профессионалов Linux и сертификатом обработчика инцидентов GIAC. Донни - профессиональный инструктор Linux и, благодаря волшебству Интернета он преподаёт занятия Linux по всему миру, не выходя из своей гостиной. Также он является исследователем безопасности Linux в компании, занимающейся безопасностью Интернета вещей.

 О рецензенте

Стив Шиллинг Работает в ИТ- индустрии на коммерческой основе с 1987 года, но начинал с компьютерами ещё в 1982 году, в очень раннем возрасте, когда писал базовые программы и отлаживал написанные другими игровые программы. Стив обладает обширными знаниями в области систем Unix, Linux, Windows и мейнфреймов, но в основном работает в пространстве Unix/ Linux и сотрудничал во многих отраслях, включая финансы, розничную торговлю и страхование. В наши дни Стив проводит обучение и консультирует по DevOps, SRE, поддержке производства и всему, что относится к автоматизации процессов.

В настоящее время он работает в TPS Services Ltd., специализируясь на обучении и консультациях в области ИТ, жизненным навыкам, тренировке в менеджменте и консалтинге. Стив является автором книги The Grass Is Greener - Linux as a Desktop, а также и в прошлом рецензировал книги Packt.

 www.PacktPub.com

 Предисловие

 Для кого эта книга

Выгоду от этой книги получат разработчики Python, которые хотят ускорять свой код при помощи Rust или поэкспериментировать с Rust без получения большого риска или больших трудозатрат. Не требуется никаких базовых знаний по Rust. Эта книга обладает неким введением в Rust для разработчиков Python и пользуется примерами на Python для быстрого ускорения вами при помощи Rust.

 Что охватывает эта книга

Глава 1. Разбираемся с потребностью в systemd

Глава 2. Разбираемся с каталогами и файлами systemd

Глава 3. Разбираемся со службами, путями и элементами сокетов

Глава 4. Контролирующие службы systemd

Глава 5. Создание и редактирование служб

Глава 6. Разбираемся с целями systemd

Глава 7. Разбираемся с таймерами systemd

Глава 8. Разбираемся с процессом запуска systemd

Глава 9. Настройка параметров системы

Глава 10. Разбираемся с командами Shutdown и Reboot

Глава 11. Разбираемся с cgroup Версии 1

Глава 12. Контролируем ресурсы при помощи cgroup Версии 1

Глава 13. Разбираемся с cgroup Версии 2

Глава 14. Применяем journald

Глава 15. Пользуемся systemd-networkd и systemd-resolved

Глава 16. Разбираемся с Timekeeping при помощи systemd

Глава 17. Разбираемся с systemd и начальными загрузчиками

Глава 18. Разбираемся с systemd-logind

 Как получить максимальную выгоду от этой книги

Желательно чтобы вы разбирались в Python и были лишены напряжённости в отношении объектно- ориентированного программирования. Будут затрагиваться некоторые современные темы, такие как метаклассы, но они не являются существенными. В этой книге описаны программирование Rust, прикладные приложения Python и модули Python, устанавливаемые при помощи pip.

Таблица 0-1. Требования книги
Рассмариваемое в этой книге программное/аппаратное обеспечение Требования к операционной системе

Python 3

Windows, macOS или Linux

Rust

Windows, macOS или Linux

Docker

Windows, macOS или Linux

Py03

Windows, macOS или Linux

Redis

Windows, macOS или Linux

PostgreSQL

Windows, macOS или Linux

Если вы применяете цифровую версию данной книги, мы предлагаем вам набирать любой код этой книги или параметры настройки самостоятельно или получать доступ к такому коду через репозиторий GitHub (ссылка на него доступна в нашем следующем разделе). Следование этому поможет вам избежать любых потенциальных ошибок, связанных с копированием и вставкой для читающих PDF или электронную книгу {Прим. пер.: в своём переводе мы постарались проверять и это.}

 Выгрузка примеров кода

Весь пакет кода для данной книге располагается в GitHub. У нас также имеются и прочие пакеты кодов из нашего богатого каталога книг и видео доступных по этому адресу. Проверьте и его!

 Выгрузка цветных изображений

Помимо всего прочего мы также предоставляем некий файл PDF, который содержит цветные изображения снимков экранов/ схем, применяющихся в данной книге. Вы можете получить их здесь.

 Соглашения

На протяжении этой книги имеется ряд соглашений о применении текста в книге.

CodeInText: указывают на кодовые слова в тексте, имена таблиц базы данных, имена папок, имена файлов, модели URL-адресов, ввод пользователя, и обработчики Twitter. Вот некий образец: "Смонтируйте выгруженный файл образа диска WebStorm-10*.dmg в качестве другого диска в вашей системе".

Блок кода установлен так:


use std::error::Error;
use std::fs::File;
use csv;

use super::structs::FootPrint;
 	   

Когда мы желаем привлечь ваше внимание к определённой части блока кода, соответствующие строки устанавливаются жирным шрифтом:


let code = "5 + 6";
let result = py.eval(code, None, Some(&locals)).unwrap();
let number = result.extract::<i32>().unwrap();
 	   

Весь ввод или вывод командной строки записывается следующим образом:


pip install git+https://github.com/maxwellflitton/flitton-fib-rs@main
 	   

Жирно: выделяются новые термины и важные слова или слова, которые вы видите на экране. Например, слова в меню или блоках диалогов появляются в тексте Жирно. Вот некий образец: "Это может быть выполнено посредством клика по закладке Settings и далее по закладке Secrets в боковой вставке слева, как вы можете наблюдать здесь".

[Замечание]Замечание

Предостережения или важные замечания появляются в блоках подобных этому.

[Совет]Совет

Советы и ловкие приёмы возникают таким образом.

 Обратная связь с читателями

Обращения наших читателей всегда приветствуются. Дайте нам знать что вы думаете об этой книге - что вам нравится или не нравится. Обратная связь с читателями важна нам, так как помогает нам разрабатывать издания, от которых вы на самом деле получите максимальную пользу.

Для отправки обычного отклика просто пошлите электронное письмо на адрес feedback@packtpub.com с упоминанием заголовка книги в теме вашего сообщения.

Если у вас существует тема, в которой у вас имеется опыт и вы заинтересованы либо в написании, либо во вкладе в книгу, обратитесь к руководству по адресу www.packtpub.com/authors.

 Поддержка пользователей

Теперь, когда вы являетесь гордым владельцем книги Packt, у нас есть целый ряд моментов для помощи вам в получении максимальной выгоды от вашей покупки.

 Опечатки

Хотя мы и предприняли все меры чтобы обеспечить точность нашего содержимого, ошибки всё- таки возможны. Если вы обнаружили ошибку в нашей книге - возможно, ошибку в тексте или в коде - мы будем признательны если вы сообщите об этом нам. Сделав это, вы можете предостеречь остальных читателей от разочарования и помочь нам улучшить последующие версии данной книги. Если вы обнаружили ошибку, пожалуйста, сообщите о ней посетив www.packtpub.com/submit-errata, выбрав вашу книгу, кликнув на ссылку Errata Submission Form, и заполнив подробности найденной вами ошибки. Когда ваша ошибка будет проверена, вы получите уведомление и ошибка будет выложена на наш веб- сайт или добавлена в какой- нибудь перечень существующих ошибок с заголовком раздела Errata.

Для просмотра ранее выявленных ошибок посетите www.packtpub.com/books/content/support и введите название нужной книги в поле поиска. Необходимая информация появится в разделе Errata.

 Незаконное тиражирование

Пиратство, защищённых авторским правом материалов в Интернете является постоянной проблемой во всех средствах массовой информации. В Packt мы подходим к защите наших авторских прав и лицензий очень серьёзно. Если вы столкнётесь с какой-либо незаконной копией наших работ в любой форме в Интернете, пожалуйста, предоставьте нам сразу адрес местонахождения или имя веб-сайта, чтобы мы могли принять меры. {Прим. пер.: Согласно закону об авторском праве РФ, авторские права на перевод принадлежат авторам этого перевода. Данным переводом, по нашему мнению, мы служим популяризации основных стратегических направлений развития тем Packt. В случае наличия конструктивных предложений, готовы к тесному сотрудничеству.}

Пожалуйста, обратитесь по адресу copyright@packtpub.com со ссылкой на материалы содержащие признаки нарушения авторских прав.

Мы выражаем вам признательность в защите наших авторов и нашей возможности доносить до вас имеющего ценность содержимого.

 Вопросы

Если у вас есть проблемы по любым сторонам данной книги, вы можете контактировать с нами по адресу questions@packtpub.com и мы предпримем все меры в отношении ваших проблем.

 Содержание

Предисловие
Что охватывает эта книга
Как получить максимальную выгоду от этой книги
Для кого эта книга
Соглашения
Обратная связь с читателями
Поддержка пользователей
Опечатки
Незаконное тиражирование
Вопросы
Раздел 1. Применение systemd
Глава 1. Разбираемся с потребностью в systemd
Технические требования
История систем init Linux
Изъяны SysV Init и upstart
Преимущества systemd
Простота systemd
Целостность systemd
Производительность systemd
Безопасность systemd
Разногласия controversy
Выводы
Вопросы
Ответы
Дальнейшее чтение
Глава 2. Разбираемся с каталогами и файлами systemd
Технические требования
Разбираемся с файлами настройки systemd
Разбираемся с файлами юнитов systemd
Типы файлов юнитов
Разбираемся с исполняемыми файлами systemd
Выводы
Вопросы
Ответы
Дальнейшее чтение
Глава 3. Разбираемся с юнитами служб, путей и сокетов
Технические требования
Разбираемся с юнитами служб
Разбираемся с файлом службы Apache
Разбираемся с файлом службы безопасной оболочки
Разбираемся с файлом службы timesyncd
Разбираемся с юнитами сокетов
Разбираемся с юнитами путей
Выводы
Вопросы
Ответы
Дальнейшее чтение
Глава 4. Контролирующие службы systemd
Технические требования
Проверка состояния службы
Запуск, останов и перезапуск служб
Включение и отключение служб
Маскирование служб
Выводы
Вопросы
Ответы
Дальнейшее чтение
Глава 5. Создание и редактирование служб
Технические требования
Редактирование имеющейся службы
Создание частичной редакции раздела [Install]
Создание частичной редакции раздела [Service]
Создание полной редакции
Создание новой службы
Изменение редактора по умолчанию systemd
Создание новой службы контейнера при помощи podman
Выводы
Вопросы
Ответы
Дальнейшее чтение
Глава 6. Разбираемся с целями systemd
Технические требования
Разбираемся с основным назначением целей systemd
Разбираемся со структурой файла цели
Разбираемся с файлом sockets.target
Разбираемся с зависимостями в файле sshd.service
Сопоставляем цели systemd c runlevels SysVinit
Разбираемся с зависимостями целей
Изменение цели по умолчанию
Временное изменение цели
Выводы
Вопросы
Ответы
Дальнейшее чтение
Глава 7. Разбираемся с таймерами systemd
Технические требования
Сопоставляем таймеры systemd и cron
Просмотр сведений таймера
Разбираемся с параметрами таймеров
Разбираемся с монотонными таймерами
Разбираемся с таймерами реального времени
Разбираемся с событиями календаря для таймеров реального времени
Создание таймеров
Создание таймера уровня системы
Создание таймера уровня пользователя
Выводы
Вопросы
Ответы
Дальнейшее чтение
Глава 8. Разбираемся с процессом запуска systemd
Технические требования
Сопоставляем запуск SysV и запуск systemd
Разбираемся со схожестью запуска SysV и systemd
Разбираемся с процессом запуска SysV
Разбираемся с процессом запуска systemd
Анализируем производительность запуска
Некоторые отличия в Ubuntu Server 20.04
Разбираемся с генераторами systemd
Разбираемся с юнитами монтирования
Разбираемся с обратной совместимостью
Выводы
Вопросы
Ответы
Дальнейшее чтение
Глава 9. Настройка параметров системы
Технические требования
Установка локального параметра
Разбираемся с локалями
Изменяем локаль по умолчанию для машины Alma
Изменяем локаль по умолчанию в Ubuntu
Устанавливаем параметры времени и зоны времени
Устанавливаем имя хоста и сведения о машине
Просматриваем имеющиеся сведения
Устанавливаем сведения
Выводы
Вопросы
Ответы
Дальнейшее чтение
Глава 10. Разбираемся с командами Shutdown и Reboot
Технические требования
Отключение при помощи systemctl
Прекращение при помощи systemctl
Перезапуск при помощи systemctl
Применение shutdown вместо systemctl
Исполнение задания перед отключением
Выводы
Вопросы
Ответы
Дальнейшее чтение
Раздел 2. Разбираемся с cgroup
Глава 11. Разбираемся с cgroup Версии 1
Технические требования
Разбираемся с историей cgroup
Разбираемся с основным назначением cgroup
Разбираемся со структурой cgroup Версии 1
Разбираемся с файловой системой cgroup
Выводы
Вопросы
Ответы
Дальнейшее чтение
Глава 12. Контролируем ресурсы при помощи cgroup Версии 1
Технические требования
Разбираемся с контроллерами ресурсов
Изучаем контроллеры ресурсов
Готовимся к демонстрации
Контролируем загруженность ЦПУ
Контролируем загруженность Vicky ЦПУ
Контролируем загруженность ЦПУ для службы
Контролируем загруженность памяти
Контролируем загруженность blkio
Устанавливаем предел blkio для Vicky
Устанавливаем предел blkio для службы
Разбираемся с pam_limits и ulimit
Команда ulimit
Модуль pam_limits
Выводы
Вопросы
Ответы
Дальнейшее чтение
Глава 13. Разбираемся с cgroup Версии 2
Технические требования
Разбираемся с потребностью в Версии 2
Сложность Версии 1
Имена файлов атрибута Версии 1
Нет поддержки для контейнеров без корня
Разбираемся с улучшениями в cgroup Версии 2
Установка пределов ресурсов в контейнерах без корня
Разбираемся с cpuset
Конвертируем дистрибутивы типа RHEL 8 в cgroup Версии 2
Выводы
Вопросы
Ответы
Дальнейшее чтение
Раздел 3. Регистрация, отсчёт времени, работа с сетью и запуск
Глава 14. Применяем journald
Технические требования
Разбираемся с за и против rsyslog
Разбираемся с за и против journald
Разбираемся с journald в Ubuntu
Разбираемся с journald в системах с типом RHEL
Применяем journalctl
Поиск и просмотр зарегистрированных данных при помощи journalctl
Изоляция файлов регистрации journald для безопасности
Выводы
Вопросы
Ответы
Дальнейшее чтение
Глава 15. Пользуемся systemd-networkd и systemd-resolved
Технические требования
Разбираемся с networkd и resolved
Разбираемся с Netplan в Ubuntu
Просматриваем выработанные при установке конфигурации Netplan
Создаём конфигурации Netplan
Разбираемся с networkctl и resolvectl в машинах с типом RHEL
Применяем networkctl и resolvectl
Просматриваем файлы юнитов networkctl и resolvectl
Выводы
Вопросы
Ответы
Дальнейшее чтение
Глава 16. Разбираемся с Timekeeping при помощи systemd
Технические требования
Разбираемся с важностью и точностью времени
Сопоставляем реализации NTP
Разбираемся с chrony в машине AlmaLinux
Файл chronyd.service
Файл chrony.conf
Установка времени сервера chronyd
Применение chronyc
Разбираемся с systemd-timesyncd
Файл systemd-timesyncd.service
Файл timesyncd.conf
Применение timedatectl
Настройка Ubuntu на применение chrony
Разбираемся с Точным протоколом времени
Обзор PTP
Установка PTP
Настройка PTP с программными отметками времени в AlmaLinux
Настройка PTP с аппаратными отметками времени в AlmaLinux
Настройка PTP с программными отметками времени в Ubuntu
Настройка PTP с аппаратными отметками времени в Ubuntu
Выводы
Вопросы
Ответы
Дальнейшее чтение
Глава 17. Разбираемся с systemd и начальными загрузчиками
Технические требования
Разбираемся с основами архитектуры компьютера
Разбираемся с GRUB2
Сопоставляем GRUB2 в системах с BIOS и EFI/UEFI
GRUB2 в машинах Ubuntu на основе BIOS и на основе EFI/UEFI
Разбираемся с systemd-boot
Разбираемся с безопасным запуском
Выводы
Вопросы
Ответы
Дальнейшее чтение
Глава 18. Разбираемся с systemd-logind
Технические требования
Разбираемся с потребностью в новой службе начальной регистрации
Разбираемся с systemd-logind.service
Файл systemd-logind.service Alma Linux
Файл systemd-logind.service Ubuntu Server
Разбираемся с logind.conf
Виртуальные терминалы
Оставляем процессы пользователя исполняемыми после его выхода
Директивы управления питанием
Директивы IdleAction
Разбираемся с loginctl
Разбираемся с polkit
Выводы
Вопросы
Ответы
Дальнейшее чтение
Указатель