Systemd привносит в Linux концепцию модулей systemd. Для е.грамм., сервисный блок, целевой блок, монтажный блок и т. д. типы единиц с расширением файла как .услуга, .цель, .смонтировать соответственно. Конфигурационный файл, представляющий эти модули, хранится в каталогах: / usr / lib / systemd / system /, / run / systemd / system /, / etc / systemd / system /
В более ранних версиях Red Hat Enterprise Linux (RHEL) использовались сценарии инициализации. Эти сценарии были написаны на BASH и располагались в каталоге «/ etc / rc.d / init.d / ”. Это скрипты, используемые для управления службами и демонами. Позже в RHEL 7 были введены служебные модули для замены сценариев инициализации. Fedora, которая является исходной ОС Red Hat Enterprise Linux, начала использовать systemd из Fedora версии 15.
Сервисные подразделения имеют .расширения служебных файлов и имеют те же роли, что и сценарии инициализации. «Systemd» использует утилиту «systemctl» для управления системными службами. Его можно использовать для просмотра, запуска, остановки, перезапуска, включения или отключения этих служб.
Преимущества Systemd перед системой Init
- С помощью systemd мы можем отдавать приоритет необходимым сервисам над менее значительными.
- Cgroups используются systemd для отслеживания процессов и управления их выполнением.среда.
- Systemd по-прежнему поддерживает старый процесс инициализации и имеет больший контроль.
- Systemd может иметь дело с динамическими модификациями конфигурации системы.
Что мы будем освещать?
В этом руководстве мы узнаем об управлении процессами systemd. Мы увидим, как включать и отключать службы запуска при загрузке и как выполнять служебные операции, такие как запуск, остановка, перезапуск и т. Д. Мы выполнили следующие упражнения на рабочих станциях Fedora 30, которые будут наиболее применимы к другим ОС Linux.
Список служб запуска при загрузке в Fedora Linux
Старый метод SysV использует службу и chkconfig команды для управления услугами. Эти команды теперь заменены командами systemd, например systemctl. Давайте посмотрим на некоторые операции «systemctl» на различных службах в Linux.
1. Чтобы перечислить все службы, запущенные в вашей системе, вместе с их состояниями (включены или отключены), используйте команду ниже:
$ sudo systemctl list-unit-files --type = сервис
Служба может иметь три состояния: 1) включено 2) отключено 3) статическое
Включенная служба имеет символическую ссылку в .хочет каталог, тогда как отключенная служба не имеет его. Статическая служба не имеет раздела установки в соответствующем сценарии инициализации. Таким образом, его нельзя включить или отключить.
Чтобы получить более подробную информацию об услугах, следует использовать следующую команду.
$ sudo systemctl -at сервис
Сводка названий столбцов выше:
UNIT - имя модуля systemd (здесь имя сервиса).
ЗАГРУЗИТЬ - Укажите, правильно ли был загружен модуль systemd.
АКТИВНЫЙ - Состояние объекта (здесь сервис).
SUB - Подсостояние активации юнита.
ОПИСАНИЕ - Краткая информация об установке.
Мы также можем использовать следующую команду:
$ sudo ls / lib / systemd / система / *.услугаили же
$ sudo / и т.д. / systemd / system / *.услуга
В «/ Etc / inittab» теперь заменен на «/ Etc / systemd / system /» в systemd. Этот каталог теперь содержит символические ссылки на файлы в каталоге «/ Usr / lib / systemd / system”. Скрипты инициализации помещаются в каталог «/ usr / lib / systemd / system». Служба должна быть сопоставлена «/ Etc / systemd / system /» для запуска при загрузке системы. Для этого в Fedora и других последних системах Linux используется команда systemctl.
2. Давайте посмотрим на приведенный ниже пример включения службы httpd:
$ sudo systemctl включить httpd.услуга
Кроме того, мы можем использовать команду ниже, чтобы отфильтровать все включенные службы:
$ sudo systemctl list-unit-files | grep включен
или используйте команду:
$ sudo systemctl | grep работает
3. Чтобы вывести список всех активных (запущенных) сервисов, используйте команду:
4. Чтобы узнать, какие службы разрешены для автоматического запуска при загрузке системы, мы также можем использовать следующую команду:
$ sudo systemctl list-unit-files --type = service --state = enabled --all
5. Точно так же мы можем проверить отключенные службы для запуска при загрузке с помощью команды:
$ sudo systemctl list-unit-files --type = service --state = disabled --all
6. Мы также можем увидеть, сколько времени занимает каждая служба при запуске:
$ sudo systemd-analysis виноват
7. Чтобы проверить, включен ли для службы автозапуск при загрузке, используйте команду:
$ sudo systemctl включен xxxВместо ххх укажите название службы. E.грамм., в случае службы httpd команда будет такой:
$ sudo systemctl включен httpd.услугаили же
$ sudo systemctl включен httpd
8. Чтобы проверить статус сервиса, используйте команду:
$ sudo systemctl status xxx.услугаНапример, чтобы проверить статус службы sshd:
$ sudo systemctl status sshd.услуга
9. Чтобы проверить, запущена служба или нет, просто выполните следующую команду:
$ sudo systemctl активен xxx.услугаНапример, чтобы проверить статус telnet:
$ sudo systemctl активен telnet.услуга
10. Чтобы запустить мертвую или неактивную службу, используйте команду:
$ sudo systemctl start xxx.услугаНапример, чтобы запустить службу sshd:
$ sudo systemctl start sshd
11. Чтобы отключить службу при загрузке системы
Например, чтобы отключить службу httpd:
$ sudo systemctl отключить httpd.услугаили же
$ sudo systemctl отключить httpd
12. Чтобы перезапустить работающую службу
$ sudo systemctl перезапуск xxx.услугаЧтобы перезапустить службу sshd, используйте команду:
$ sudo systemctl перезапустить sshdЕсли служба еще не запущена, она будет запущена.
13. Чтобы перезагрузить работающую службу
$ sudo systemctl перезагрузить xxx.услугаНапример, перезагрузите службу httpd с помощью:
$ sudo systemctl перезагрузить httpd.услуга
Эта команда перезагружает конфигурацию конкретной службы. Чтобы перезагрузить файл конфигурации модуля systemd, нам понадобится команда:
$ sudo systemctl демон-перезагрузка14. Чтобы перечислить все зависимости службы:
$ sudo systemctl список зависимостей xxx.услугаВ случае службы httpd команда будет такой:
$ sudo systemctl список зависимостей httpd.услуга
Заключение
В этом руководстве мы рассмотрели различные способы управления службами с помощью утилиты systemd, такие как включение служб во время загрузки, их запуск и остановка и т. Д. Если вы привыкли к служебной команде старого Sysvinit, вам следует переключиться на systemd, поскольку он имеет больше функций и является системой инициализации по умолчанию в новых версиях Fedora, RHEL и большинстве других основных дистрибутивов Linux.