6. Цели systemd

Этот урок дает базовый обзор файлов юнитов systemd и того, как управлять ими с помощью systemctl, основного инструмента для управления init-системой. Мы рассмотрим базовую структуру файла юнита и основные команды для управления службами Linux.

Понимание файла юнита Systemd

Файл юнита systemd — это простой текстовый файл, описывающий службу, точку монтирования, устройство или другой ресурс, которым может управлять systemd. Вот базовый пример файла юнита службы с именем foobar.service:

[Unit]
Description=My Foobar Service
After=network.target

[Service]
ExecStart=/usr/bin/foobar

[Install]
WantedBy=multi-user.target

Этот простой файл службы разделен на разделы:

  • [Unit]: Этот раздел содержит метаданные и информацию о зависимостях. Директива Description предоставляет удобочитаемое имя для юнита. Директивы, такие как After и Before, контролируют порядок запуска, гарантируя, что этот юнит запустится после доступности сети.
  • [Service]: Этот раздел определяет, как управлять службой. Директива ExecStart имеет решающее значение, поскольку она указывает команду, которую необходимо выполнить для запуска службы. Другие директивы, такие как ExecStop и ExecReload, могут определять, как остановить или перезагрузить службу.
  • [Install]: Этот раздел определяет поведение юнита при его включении или отключении с помощью systemctl. Директива WantedBy указывает systemd запустить эту службу как часть определенной цели, такой как multi-user.target для стандартной неграфической загрузки.

Это лишь краткий обзор файлов юнитов systemd. Для более сложных конфигураций настоятельно рекомендуется дальнейшее изучение этой темы.

Основные команды Systemctl

Теперь давайте рассмотрим основные команды systemctl, которые вы будете использовать для взаимодействия с юнитами systemd и управления службами Linux.

Вывод юнитов Systemd

Чтобы увидеть все активные юниты, которыми в данный момент управляет systemd, используйте команду list-units.

systemctl list-units

Проверка состояния юнита

Чтобы просмотреть подробное состояние определенного юнита, включая то, активен ли он, включен ли он, и его последние записи журнала, используйте команду status.

systemctl status networking.service

Управление состояниями служб

You can control the runtime state of a service using start, stop, and restart.

Вы можете управлять рабочим состоянием службы с помощью команд start, stop и restart.

Чтобы немедленно запустить службу:

sudo systemctl start networking.service

Чтобы остановить запущенную службу:

sudo systemctl stop networking.service

Чтобы остановить, а затем снова запустить службу:

sudo systemctl restart networking.service

Включение и отключение служб

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

Чтобы включить службу для запуска при загрузке:

sudo systemctl enable networking.service

Чтобы отключить службу от запуска при загрузке:

sudo systemctl disable networking.service

Эти команды являются строительными блоками для управления службами в современных системах Linux. Освоение их — ключевой шаг в вашем путешествии по Linux.

Войдите, чтобы сохранить ваш прогресс обучения

Вход

Упражнения

Практика — ключ к освоению новых навыков. Эта практическая лаборатория поможет закрепить ваше понимание управления процессами, которые часто контролируются службами systemd:

  1. Управление и мониторинг процессов Linux - Практикуйтесь во взаимодействии с процессами на переднем и заднем планах, просматривайте их с помощью ps, отслеживайте ресурсы с помощью top, настраивайте приоритет с помощью renice и завершайте их с помощью kill. Эта лаборатория даст вам практический опыт работы с эффектами управления юнитами systemd в реальном времени.

Эта лаборатория поможет вам применить эти концепции в реальном сценарии и повысить уверенность в управлении процессами в Linux.

Тест

Какая команда используется для запуска службы с именем peanut.service? Пожалуйста, ответьте на английском языке. Ответ чувствителен к регистру.