Как управлять сервисами Systemd с помощью Systemctl?

Системный и сервисный менеджер по умолчанию для большинства дистрибутивов Linux теперь systemd.


Процесс systemd заменяет инициализацию SysV. Он запускается как первый процесс после загрузки ядра и отвечает за приведение хоста Linux в состояние, в котором он может использоваться. Он отвечает за запуск и управление службами, монтирование файловых систем, управление оборудованием, генерацию приглашения на вход в систему и многое другое..

Ключевым преимуществом по сравнению с SysV является то, что systemd запускает как можно больше служб параллельно, что ускоряет процесс запуска и ускоряет отображение экрана входа в систему..

Единицы

Элементы, которыми управляет systemd, называются единицами. Файлы модуля находятся в / lib / systemd / system.

Сервисные единицы

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

Управление системными сервисами

Команда для управления модулями systemd – systemctl.

Запуск и остановка сервисов

Чтобы запустить службу systemd, используйте команду запуска systemctl:

$ sudo systemctl start name.service

Вы можете оставить суффикс .service. Например, чтобы запустить сервер Apache в Ubuntu:

$ sudo systemctl start apache2

Чтобы остановить работающий сервис:

$ sudo systemctl stop name.service

Итак, чтобы остановить сервер apache в Ubuntu:

$ sudo systemctl stop apache2

Услуги перезапуска и перезагрузки

Чтобы перезапустить работающую службу, используйте команду restart:

$ sudo systemctl restart name.service

И где требуется только перезагрузка файла конфигурации

$ sudo systemctl перезагрузить name.service

Включение и отключение сервисов

Если вы хотите, чтобы служба запускалась автоматически при загрузке системы, используйте команду enable:

$ sudo systemctl enable name.service

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

$ sudo systemctl отключить name.service

Отключение не останавливает работающий сервис.

Просмотр статуса сервиса

Чтобы просмотреть информацию об услуге:

$ sudo systemctl status name.service

Это покажет вам статус службы и первые несколько строк файла журнала. Итак, пока служба работает, вывод

sudo systemctl status apache2

является

apache2.service – HTTP-сервер Apache
Загружен: загружен (/lib/systemd/system/apache2.service; включен; предустановка поставщика: включена)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Активен: активен (работает) с вт 2020-05-19 22:11:36 UTC; 4 дня назад
Процесс: 116002 ExecReload = / usr / sbin / apachectl изящный (код = выход, статус = 0 / УСПЕХ)
Основной PID: 104165 (apache2)
Задачи: 55 (лимит: 1024)
CGroup: /system.slice/apache2.service
10─104165 / usr / sbin / apache2 -k start
11─116006 / usr / sbin / apache2 -k start
11─116007 / usr / sbin / apache2 -k start

19 мая 22:11:36 ubuntu18 systemd [1]: Запуск HTTP-сервера Apache…
19 мая 22:11:36 ubuntu18 systemd [1]: запущен HTTP-сервер Apache.
21 мая 06:25:01 ubuntu18 systemd [1]: Перезагрузка HTTP-сервера Apache.
21 мая 06:25:01 ubuntu18 systemd [1]: перезагрузил HTTP-сервер Apache.
22 мая 06:25:01 ubuntu18 systemd [1]: Перезагрузка HTTP-сервера Apache.

Чтобы проверить, активен ли сервис:

$ sudo systemctl is-active name.service

Итак, пока запущена служба apache2, вывод команды systemctl is-active:

$ sudo systemctl is-active apache2
активный

Чтобы проверить, включен ли сервис:

$ sudo systemctl – включен name.service.

Просмотр состояния системы

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

Чтобы увидеть все типы юнитов

$ sudo systemctl -t help
Доступные типы юнитов:
служба
разъем
цель
устройство
крепление
автомонтирования
обмен
таймер
дорожка
кусочек
объем

Чтобы вывести список всех установленных модулей, используйте list-unit-files

$ sudo systemctl list-unit-files
СОСТОЯНИЕ ФАЙЛА
proc-sys-fs-binfmt_misc.automount static
-.сгенерировано
генерируется boot-efi.mount
статическая dev-принцесса
dev-mqueue.mount статический
сгенерировано mnt.mount
proc-sys-fs-binfmt_misc.mount статический
sys-fs-fuse-connections.mount статический
sys-kernel-config.mount статический
sys-kernel-debug.mount статический
acpid.path включен
apport-autoreport.path включен
systemd-ask-password-console.path статический
systemd-ask-password-plymouth.path статический
systemd-ask-password-wall.path статический
сеанс-161. область переходного процесса
account-daemon.service включен

Вывод имеет только два столбца Unit File и State. Состояние обычно будет включено, отключено, статическое или замаскированное.

  • статический: Это означает, что устройство не может быть включено, выполняет одноразовое действие или является зависимостью от другого устройства и не может быть запущено само по себе.
  • Маска: Единица, указанная как замаскированная, означает, что она полностью не запускается, так как она связана с / dev / null. Это называется маскировкой устройства. Это предотвращает запуск службы вручную или автоматически.

Список всех установленных сервисов

Команда systemctl list-unit-files с сервисным фильтром -t или -type показывает только состояние установленных сервисов.

$ sudo systemctl list-unit-files -t service

ФАЙЛ СОСТОЯНИЯ ФАЙЛА
account-daemon.service включен
acpid.service отключен
apache-htcacheclean.service отключен
[Электронная почта защищена] отключен
apache2.service включен
[Электронная почта защищена] отключен
apparmor.service включен
apport-autoreport.service static
[Электронная почта защищена] статический
генерируется apport.service
apt-daily-upgrade.service static
apt-daily.service static
atd.service включен
[Электронная почта защищена] включен
blk-Availability.service включен
bootlogd.service в маске
bootlogs.service в маске

Чтобы увидеть все активные сервисные единицы, используйте list-unit с -t service filter

$ sudo systemctl list-unit -t service

ЕДИНИЦА НАГРУЗКИ ACTIVE SUB ОПИСАНИЕ
account-daemon.service загружен активным запущенным сервисом учетных записей
apache2.service загружен активно работает HTTP-сервер Apache
apparmor.service загружает активную завершенную инициализацию AppArmor
apport.service загружает активный выход из LSB: автоматическое создание отчета о сбое
atd.service загружен активный запущенный планировщик отложенного выполнения
blk-Availability.Service загружен Активно Выход Доступность блочных устройств
cloud-config.service загружен активный выход завершен Примените параметры, указанные в cloud-con
cloud-final.service загружен активный выход. Выполнение пользовательских / финальных сценариев в облаке.
cloud-init-local.service загружен активный выход Первоначальное задание cloud-init (предварительная сеть)
Служба cloud-init.service загружена. Активное завершение Первоначальное задание cloud-init (служба метаданных
console-setup.service загружен активный выход Установить шрифт и раскладку консоли
cron.service загружен активно работает Регулярная обработка фоновых программ dae

Вывод имеет следующие столбцы:

  • ЕДИНИЦА ИЗМЕРЕНИЯ: Имя единицы обслуживания systemd
  • НАГРУЗКИ: Показывает, правильно ли было прочитано и загружено определение объекта
  • ACTIVE: Описывает, если устройство активно.
  • SUB: Низкоуровневое состояние активации устройства, дающее более подробную информацию об устройстве. Это будет зависеть от типа устройства.
  • ОПИСАНИЕ: Описание сервисного подразделения.

Вывод

Я надеюсь, что это даст вам представление об использовании systemctl для управления службами в Linux. Если вы хотите узнать больше, вы можете проверить это Курс Linux Mastery.

TAGS:

  • Linux

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map