
В Linux служба — это программа, работающая в фоновом режиме . Службы могут запускаться по требованию или во время загрузки системы.
Если вы используете Linux в качестве основной операционной системы или платформы разработки, вам придётся работать с различными службами, такими как веб-сервер, SSH или cron . Умение просматривать список запущенных служб и проверять их состояние важно при отладке системных проблем.
Большинство последних дистрибутивов Linux используют systemd в качестве системы инициализации и менеджера служб по умолчанию.
Systemd — это набор инструментов для управления системами Linux. Он используется для загрузки системы, управления службами, автоматического монтирования файловых систем, ведения журнала событий, настройки имени хоста и других системных задач.
В этой статье объясняется, как составить список служб в Linux.
Список служб Linux
Systemd использует концепцию юнитов, которыми могут быть службы, сокеты, точки монтирования, устройства и т. д. Юниты определяются с помощью текстовых файлов в формате ini . Эти файлы содержат информацию о юните, его настройках и командах для выполнения. Расширения имён файлов определяют тип файла юнита. Например, файлы юнитов системных служб имеют расширение .service .
systemctl — это утилита командной строки, используемая для управления systemd и службами. Она является частью экосистемы systemd и доступна по умолчанию во всех системах.
Чтобы получить список всех загруженных сервисных единиц, введите:
sudo systemctl list-units --type service
UNIT LOAD ACTIVE SUB DESCRIPTION cron.service loaded active running Regular background program processing daemon ...
Каждая строка вывода содержит следующие столбцы слева направо:
-
UNIT— Название подразделения обслуживания. -
LOAD— Информация о том, загружен ли файл блока в память. -
ACTIVE— состояние активации файла блока высокого уровня, которое может быть активным, перезагружаемым, неактивным, неудачным, активируемым, деактивируемым. Является обобщением столбцаSUB. -
SUB— низкоуровневое состояние активации файла модуля. Значение этого поля зависит от типа модуля. Например, модуль типа «служба» может находиться в одном из следующих состояний: «мёртв», «завершён», «сбой», «неактивен» или «выполняется». -
DESCRIPTION— Краткое описание файла блока.
По умолчанию команда выводит список только загруженных активных юнитов. Чтобы увидеть также загруженные, но неактивные юниты, используйте опцию --all :
sudo systemctl list-units --type service --all
Если вы хотите увидеть все установленные файлы модулей, а не только загруженные, используйте:
sudo systemctl list-unit-files
Отображение статуса услуги
Чтобы проверить состояние службы, используйте команду systemctl status :
sudo systemctl status .service
Где — имя сервиса, который вы хотите проверить. Например, чтобы определить текущий статус сервиса nginx, выполните:
sudo systemctl status nginx.service
Суффикс «.service» можно опустить. systemctl status nginx — это то же самое, что systemctl status nginx.service .
● nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2020-12-23 19:13:50 UTC; 5s ago Docs: man:nginx(8) Process: 3061052 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 3061063 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 3061064 (nginx) Tasks: 2 (limit: 470) Memory: 6.0M CGroup: /system.slice/nginx.service ├─3061064 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; └─3061065 nginx: worker process Dec 23 19:13:50 linuxize.dev systemd[1]: Starting A high performance web server and a reverse proxy server...
Команда выведет следующую информацию:
-
Loaded— загружен ли сервисный модуль и полный путь к файлу модуля. Также отображается, включен ли запуск модуля при загрузке системы. -
Active— активна ли служба и запущена ли она. Если ваш терминал поддерживает цвета, а служба активна и запущена, точка (●) и часть «активна (работает)» будут отображаться зелёным цветом. Линия также показывает продолжительность работы службы. -
Docs— Сервисная документация. -
Process— Информация о процессах обслуживания. -
Main PID— PID службы. -
Tasks— количество задач, приходящихся на подразделение, и лимит задач. -
Memory— Информация об использованной памяти. -
CGroup— информация о связанных контрольных группах.
Если вы хотите только проверить состояние службы, используйте команду systemctl is-active . Например, чтобы проверить, запущена ли служба nginx, выполните:
systemctl is-active nginx.service
active
Команда покажет состояние службы. Если служба активна, команда вернёт код завершения 0, что может быть полезно при использовании команды внутри скриптов оболочки.
Заключение
Мы показали вам, как использовать команду systemctl для вывода списка служб Linux и проверки их состояния.
Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии ниже.
Связанные руководства