Статус служб в Linux: Полная проверка системы за 60 секунд

Статус служб в Linux: Полная проверка системы за 60 секунд

Ваш веб-сервер внезапно "лег", а вы не знаете, в чем дело? Или служба просто не хочет запускаться без видимых причин? Не паникуйте! Есть способ мгновенно продиагностировать любую службу в Linux и понять, что происходит внутри системы прямо сейчас.

Команда `systemctl status` — это ваш швейцарский нож для мониторинга служб. Она покажет не просто "работает" или "не работает", а выдаст целую панель управления с детальной информацией. Вы узнаете, загружен ли модуль, активен ли он, сколько памяти "съедает" процесс и даже увидите последние ошибки из логов.

Мы разберем, как читать каждую строчку вывода: от статусов "loaded" и "active(running)" до тревожных "failed". Вы поймете, что означают загадочные Main PID, Tasks и как интерпретировать потребление CPU.

А если стандартного вывода недостаточно, мы покажем, как получить расширенную информацию. Узнайте, как отключить пагинацию для полного обзора, увеличить количество строк логов до 50 и даже просмотреть полную историю службы с помощью `journalctl`.

Перестаньте гадать — начните контролировать свою систему. Всё необходимое для мастерской диагностики ждет вас в полной статье.


Система инициализации Systemd позволяет не только запускать и останавливать службы, но и проверять их состояние. Для просмотра информации о сервере используется команда status утилиты systemctl. Например, чтобы посмотреть состояние веб-сервера Nginx нужно выполнить такую команду:

sudo systemctl status nginx
Статус служб в Linux: Полная проверка системы за 60 секунд

Обычно, утилита выводит информацию с пагинацией поскольку данные не умещаются на один экран. Если вы хотите отключить пагинацию используйте опцию --no-pager:

sudo systemctl status nginx --no-pager

Давайте рассмотрим что выводит эта утилита:

  • Loaded - значение loaded означает что файл юнита загружен успешно и здесь же выводится путь к этому файлу. Тут возможны и другие значения, например, masked если юнит скрыт или not-found если он не найден также здесь находится информация добавлен ли юнит в автозагрузку (enabled/disabled);
  • Active - текущее состояние и подсостояние юнита, если юнит запущен, то обычно это active(running), если он не был запущен, то inactive(dead) если что-то пошло не так то failed и т д.
  • Docs - название man страницы с документацией для службы.
  • Process - запускаемые процессы, их состояние и код выхода.
  • Main PID - идентификатор основного процесса службы.
  • Tasks - количество процессов, запущенных в рамках этой службы.
  • Memory - потребление памяти службой.
  • CPU - использование процессора службой.

Для того чтобы посмотреть все доступные значения состояний для полей Loaded и Active выполните такую команду:

systemctl --state help

После всех этих полей выводится журнал службы. Это последние 10 строк вывода основного процесса. Если вы хотите получить больше строк используйте опцию --lines с нужным количеством строк. Например, для получения 50-ти последних строк выполните:

sudo systemctl status --lines=50 avahi-daemon

Если конец строки логов обрезается до ширины экрана, вы можете использовать опцию -l или --full для того чтобы этого избежать:

sudo systemctl status nginx.service

Для того чтобы посмотреть ещё больше логов можно воспользоваться утилитой journalctl с опцией -u которой надо передать название сервиса. например:

journalctl -eu nginx.service
Статус служб в Linux: Полная проверка системы за 60 секунд

Команда начнёт вывод логов с конца. Вы можете использовать клавиши со стрелками для того чтобы листать логи. Кроме того, можно посмотреть историю изменений статуса службы с помощью команды journalctl с опциями -xeu. Например:

journalctl -xeu nginx.service
Статус служб в Linux: Полная проверка системы за 60 секунд

Более подробно об управлении службами читайте в этой статье, а про journalctl в статье под названием Шпаргалка по Journalctl.

Оставить комментарий


Кликните на изображение чтобы обновить код, если он неразборчив