0Pricing
DevOps Bootcamp · Урок

Управление службами с 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 — локальная установка не требуется.

Все уроки этого курса

  1. Что на самом деле представляет собой модуль
  2. Установка пакетов модулем package
  3. Управление службами с systemd
  4. Чтение документации с ansible-doc
← Назад к DevOps Bootcamp