Как проверить, включен ли юнит systemd в Linux

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы научитесь проверять статус юнитов systemd в Linux. Вы будете использовать команду systemctl is-enabled, чтобы определить, настроен ли юнит на автоматический запуск при загрузке системы, и команду systemctl list-units, чтобы вывести список активных юнитов. В конце вы изучите расположение файлов юнитов systemd в каталоге /etc/systemd. В рамках этого практического занятия вы получите важные навыки по управлению службами и пониманию процесса инициализации systemd.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/SystemInformationandMonitoringGroup -.-> linux/ps("Process Displaying") linux/SystemInformationandMonitoringGroup -.-> linux/service("Service Managing") subgraph Lab Skills linux/ls -.-> lab-558771{{"Как проверить, включен ли юнит systemd в Linux"}} linux/cat -.-> lab-558771{{"Как проверить, включен ли юнит systemd в Linux"}} linux/cd -.-> lab-558771{{"Как проверить, включен ли юнит systemd в Linux"}} linux/grep -.-> lab-558771{{"Как проверить, включен ли юнит systemd в Linux"}} linux/ps -.-> lab-558771{{"Как проверить, включен ли юнит systemd в Linux"}} linux/service -.-> lab-558771{{"Как проверить, включен ли юнит systemd в Linux"}} end

Проверка статуса юнита с помощью команды systemctl is-enabled

На этом этапе вы научитесь проверять статус юнитов systemd с использованием команды systemctl is-enabled.

Systemd - это менеджер системы и служб для Linux. Он управляет процессами после начального этапа загрузки системы. "Юнит" в systemd представляет собой конфигурационный файл, который описывает, как должны обрабатываться служба, устройство, точка монтирования или другой системный ресурс.

Команда systemctl is-enabled проверяет, настроен ли юнит на автоматический запуск при загрузке системы. Это важно для служб, которые вы хотите запускать при каждом запуске системы.

Проверим статус службы ssh. Служба SSH (Secure Shell) позволяет вам подключаться к серверу удаленно.

Если терминал еще не открыт, откройте его. Вы можете найти значок Xfce Terminal слева на рабочем столе.

Введите следующую команду и нажмите Enter:

systemctl is-enabled ssh

Вы должны увидеть вывод, похожий на следующий:

enabled

Этот вывод показывает, что служба ssh настроена на автоматический запуск при загрузке системы.

Теперь проверим статус службы, которая, возможно, не включена по умолчанию, например, apache2 (веб - сервер).

Введите следующую команду и нажмите Enter:

systemctl is-enabled apache2

Вы, возможно, увидите такой вывод:

disabled

Это означает, что служба apache2 не настроена на автоматический запуск при загрузке системы.

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

Помните, что команда systemctl is-enabled только сообщает, настроена ли служба на запуск при загрузке системы, а не то, запущена ли она в данный момент. В следующих этапах вы научитесь проверять, запущена ли служба.

Нажмите Продолжить, чтобы перейти к следующему этапу.

Вывод списка юнитов с помощью команды systemctl list-units

На этом этапе вы научитесь выводить список активных юнитов systemd с использованием команды systemctl list-units.

В то время как команда systemctl is-enabled сообщает, настроен ли юнит на запуск при загрузке системы, команда systemctl list-units показывает, какие юниты в данный момент загружены и активны в памяти системы. Это полезно для того, чтобы увидеть, какие службы, устройства и другие ресурсы в настоящее время управляются systemd.

Если терминал еще не открыт, откройте его.

Введите следующую команду и нажмите Enter:

systemctl list-units

Вы увидите длинный список юнитов. Вывод обычно включает столбцы, такие как:

  • UNIT: Имя юнита.
  • LOAD: Загружена ли конфигурация юнита в память.
  • ACTIVE: Общий статус активации юнита (например, active, inactive, failed).
  • SUB: Детальный статус активации юнита (например, running, exited, waiting).
  • DESCRIPTION: Краткое описание юнита.

Список может быть очень обширным. Чтобы упростить его анализ, вы можете отфильтровать вывод. Например, чтобы увидеть только службные юниты (юниты, оканчивающиеся на .service), вы можете использовать следующую команду:

systemctl list-units --type service

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

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

systemctl list-units | grep ssh

Если служба ssh.service активна, эта команда покажет строку, соответствующую этому юниту.

Команда systemctl list-units - это мощный инструмент для понимания текущего состояния вашей системы и процессов, управляемых systemd. Попробуйте разные параметры и grep, чтобы найти нужную информацию.

Нажмите Продолжить, чтобы перейти к следующему этапу.

Просмотр файлов юнитов в директории /etc/systemd

На этом этапе вы узнаете, где systemd хранит свои файлы конфигурации юнитов и как просмотреть их содержимое.

Файлы юнитов systemd, которые определяют, как управлять службами и другими ресурсами, обычно находятся в директории /etc/systemd/system/. В этой директории хранятся файлы юнитов, установленные системным администратором или пакетами.

Перейдем в эту директорию и выведем ее содержимое.

Если терминал еще не открыт, откройте его.

Сначала измените текущую директорию на /etc/systemd/system/ с помощью команды cd:

cd /etc/systemd/system/

Теперь выведите список файлов в этой директории с помощью команды ls:

ls

Вы увидите список файлов с расширениями .service, .target и другие файлы юнитов. Эти файлы содержат инструкции для systemd о том, как обрабатывать каждый юнит.

Просмотрим содержимое файла ssh.service с помощью команды cat. Помните, что вы сейчас находитесь в директории /etc/systemd/system/, поэтому вы можете ссылаться на файл напрямую по его имени.

cat ssh.service

Вы увидите содержимое файла ssh.service. Этот файл представляет собой обычный текстовый файл с различными секциями и директивами, которые сообщают systemd, как запускать, останавливать и управлять службой SSH.

Например, вы можете увидеть секции, такие как [Unit], [Service] и [Install].

  • Секция [Unit] содержит общую информацию о юните и его зависимостях.
  • Секция [Service] определяет команды, которые необходимо выполнить для запуска и остановки службы.
  • Секция [Install] содержит информацию о том, как должен быть установлен и включен юнит.

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

Вы можете использовать less вместо cat для просмотра содержимого файла по страницам, что полезно для больших файлов:

less ssh.service

Нажмите q для выхода из less.

Нажмите Продолжить, чтобы завершить этот практический урок.

Резюме

В этом практическом уроке вы научились проверять, включен ли юнит systemd для автоматического запуска при загрузке системы с помощью команды systemctl is-enabled. Вы попрактиковались в этом, проверяя статус служб ssh и apache2, и поняли, что "enabled" означает, что юнит будет запускаться при загрузке, а "disabled" - что не будет.

Вы также научились выводить список активных юнитов systemd с помощью команды systemctl list-units, которая дает более широкое представление о текущих запущенных или загруженных юнитах в системе. Наконец, вы изучили, как просматривать файлы конфигурации юнитов systemd, расположенные в директории /etc/systemd, и получили представление о том, как юниты определяются и настраиваются.