Управление службами с systemd
Запускайте, останавливайте и включайте службы.
«Управление службами с systemd» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.
Управление долго работающими службами
Модуль systemd управляет службами, которыми управляет systemd — системой инициализации в большинстве современных дистрибутивов Linux. С его помощью Вы запускаете, останавливаете и включаете их.
Запуск службы
Укажите имя службы и задайте state: started. Модуль запускает её только в том случае, если она ещё не работает, сохраняя идемпотентность.
ansible.builtin.systemd:
name: nginx
state: startedОстановка службы
Используйте state: stopped, чтобы остановить службу. Как всегда, действие выполняется только тогда, когда служба запущена.
ansible.builtin.systemd:
name: nginx
state: stoppedПерезапуск и перезагрузка
state: restarted полностью перезапускает службу, а состояние reloaded перечитывает конфигурацию, не разрывая соединения. Перезапуск — безопасный вариант по умолчанию.
ansible.builtin.systemd:
name: nginx
state: restartedЗапуск и включение — не одно и то же
Параметр state определяет, работает ли служба прямо сейчас. Параметр enabled определяет, запускается ли она автоматически при загрузке. Это независимые настройки.
Включение при загрузке
Задайте enabled: true, чтобы служба автоматически запускалась после перезагрузки. Объедините этот параметр с started, чтобы охватить и текущий момент, и будущие перезагрузки.
ansible.builtin.systemd:
name: nginx
state: started
enabled: trueПеречитывание конфигурации systemd
После добавления нового файла модуля задайте daemon_reload: true, чтобы systemd перечитал свою конфигурацию перед выполнением действий с модулем.
ansible.builtin.systemd:
name: myapp
daemon_reload: trueИдемпотентность сохраняется
Если запросить started для уже работающей службы, Вы получите ok, а не changed. Модуль проверяет текущее состояние перед выполнением каких-либо действий.
Требуется доступ root
Для управления службами нужны привилегии, поэтому добавьте become: true. Без этого systemd откажет в доступе, и задание завершится ошибкой.
- name: Enable nginx
become: true
ansible.builtin.systemd:
name: nginx
enabled: trueЕсть и модуль service
Универсальный модуль service работает с разными системами инициализации. Используйте systemd напрямую, когда нужны параметры только для systemd, например daemon_reload.
Хорошо сочетается с обработчиками
Распространённый шаблон — выполнять restart службы только при изменении её конфигурации. Обработчики, с которыми Вы познакомитесь позже, запускают этот перезапуск при изменении.
Быстрая проверка
Вы хотите, чтобы nginx работал сейчас и запускался после каждой перезагрузки.
Итоги
Модуль systemd запускает, останавливает, перезапускает и включает службы. Помните: state отвечает за текущее состояние, а enabled — за запуск при загрузке. ⚙️
Часто задаваемые вопросы
Урок «Управление службами с systemd» бесплатный?
Да — полный текст урока «Управление службами с systemd» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.
Чему я научусь в уроке «Управление службами с systemd»?
Запускайте, останавливайте и включайте службы. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать DevOps Bootcamp?
Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Управление службами с systemd»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке DevOps Bootcamp?
Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Что на самом деле представляет собой модуль
- Установка пакетов модулем package
- Управление службами с systemd
- Чтение документации с ansible-doc