Перечисление служб Linux с помощью Systemctl

В Linux служба - это программа, которая работает в фоновом режиме. Службы могут быть запущены по требованию или во время загрузки.

linux

Если вы используете Linux в качестве основной операционной системы или платформы для разработки, вы будете иметь дело с различными службами, такими как веб-сервер, ssh или cron. Знание того, как составить список запущенных служб или проверить статус службы, важно при отладке системных проблем.

Большинство последних дистрибутивов Linux используют systemd в качестве системы запуска и менеджера сервисов по умолчанию.

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

Листинг служб Linux

Systemd использует концепцию единиц, которые могут быть сервисами, сокетами, точками монтирования, устройствами и т.д. Единицы определяются с помощью текстовых файлов в формате ini. Эти файлы содержат информацию о блоке, его настройках и командах для выполнения. Расширения имен файлов определяют тип файла блока. Например, файлы блоков системных служб имеют расширение .service.

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

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

Каждая строка вывода содержит следующие столбцы слева направо:

  • UNIT - Имя службы.
  • LOAD - Информация о том, был ли файл блока загружен в память.
  • ACTIVE - Высокоуровневое состояние активации файла блока, которое может быть активным, перезагруженным, неактивным, неудачным, активирующим, деактивирующим. Является обобщением столбца SUB.
  • SUB - Состояние активации файла блока низкого уровня. Значение этого поля зависит от типа подразделения. Например, блок типа service может находиться в одном из следующих состояний: dead, exited, failed, inactive или running.
  • DESCRIPTION - Краткое описание файла устройства.

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

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

Отображение статуса службы

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

Где <service_name> - это имя службы, которую вы хотите проверить. Например, чтобы определить текущее состояние службы nginx, выполните следующее:

Вы можете опустить суффикс ".service". systemctl status nginx - это то же самое, что systemctl status nginx.service.

Команда выводит следующую информацию:

  • Loaded - Загружен ли блок обслуживания и полный путь к файлу блока. Здесь также показано, включена ли функция запуска при загрузке.
  • Active - активна ли служба и запущена ли она. Если ваш терминал поддерживает цвета и служба активна и запущена, точка (●) и часть "активна (запущена)" будут напечатаны зеленым цветом. В строке также показано, как долго служба работает.
  • Docs - Документация сервиса.
  • Process - Информация о процессах службы.
  • Main PID - PID службы.
  • Tasks - Количество задач, учтенных в блоке, и лимит задач.
  • Memory - Информация об используемой памяти.
  • CGroup - Информация о связанных группах управления.

Если вы хотите проверить только состояние службы, используйте команду systemctl is-active. Например, чтобы убедиться, что служба nginx запущена, выполните команду:

Команда покажет вам статус службы. Если служба активна, команда возвращает статус выхода 0, что может быть полезно при использовании команды внутри сценариев оболочки.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий