Настройка автозапуска служб в systemd

Автозапуск служб в systemd обеспечивает автоматический запуск нужных сервисов при загрузке системы. В этом руководстве мы рассмотрим, как настроить автозапуск служб в systemd на операционной системе НАЙС ОС.

Основные команды для настройки автозапуска

Для управления автозапуском служб в systemd используются команды systemctl enable и systemctl disable. Эти команды добавляют или удаляют службы из списка автозапуска.

Включение автозапуска службы

sudo systemctl enable имя_службы

Эта команда включает автозапуск указанной службы, добавляя её в соответствующие цели (targets), чтобы она запускалась при загрузке системы.

Отключение автозапуска службы

sudo systemctl disable имя_службы

Эта команда отключает автозапуск указанной службы, удаляя её из соответствующих целей.

Пример настройки автозапуска пользовательской службы

Рассмотрим, как создать пользовательскую службу и настроить её на автозапуск при загрузке системы.

Шаг 1: Создание unit файла службы

sudo nano /etc/systemd/system/my_custom.service

Добавьте следующий контент:

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

[Service]
ExecStart=/usr/bin/my_custom_script.sh
Restart=on-failure
User=nobody

[Install]
WantedBy=multi-user.target

Объяснение параметров

  • Description — описание службы.
  • After — указывает зависимости, в данном случае, запуск после network.target.
  • ExecStart — команда, которая будет выполнена для запуска службы.
  • Restart — условие перезапуска службы в случае её сбоя.
  • User — пользователь, от имени которого будет запущена служба.
  • WantedBy — цель, к которой будет привязана служба для автозапуска.

Шаг 2: Перезагрузка конфигурации systemd

sudo systemctl daemon-reload

Эта команда перезагружает конфигурацию systemd для применения изменений.

Шаг 3: Включение автозапуска службы

sudo systemctl enable my_custom.service

Эта команда включает автозапуск пользовательской службы my_custom.service.

Шаг 4: Запуск службы

sudo systemctl start my_custom.service

Эта команда запускает службу my_custom.service немедленно.

Шаг 5: Проверка состояния службы

sudo systemctl status my_custom.service

Эта команда отображает текущее состояние службы my_custom.service.

Просмотр активных служб и целей

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

Просмотр всех активных служб

systemctl list-units --type=service

Эта команда отображает список всех активных служб в системе.

Просмотр всех активных целей

systemctl list-units --type=target

Эта команда отображает список всех активных целей в системе.

Управление зависимостями для автозапуска

Для более сложных сценариев можно настроить зависимости служб, чтобы обеспечить правильный порядок их запуска.

Пример настройки зависимости

Добавьте следующие строки в файл my_custom.service для настройки зависимости:

[Unit]
Description=My Custom Service
After=network.target
Requires=network.target

Параметр Requires= указывает, что данная служба зависит от network.target. Если network.target не может быть запущен, служба также не будет запущена.

Удаление службы из автозапуска

Для удаления службы из автозапуска используйте команду disable:

sudo systemctl disable my_custom.service

Эта команда отключает автозапуск службы my_custom.service.

Заключение

Настройка автозапуска служб в systemd на НАЙС ОС предоставляет мощные и гибкие средства для управления запуском системных служб при загрузке системы. Использование команд systemctl enable и systemctl disable, а также создание и настройка unit файлов позволяет эффективно управлять состоянием системы и обеспечивать её стабильную работу. Следование этим шагам и рекомендациям поможет вам настроить автозапуск служб в вашей системе.