как проверить статус службы в linux
Список служб Linux с помощью Systemctl
Большинство последних дистрибутивов Linux используют systemd в качестве системы инициализации и диспетчера служб по умолчанию.
Systemd — это набор инструментов для управления системами Linux. Он используется для загрузки машины, управления службами, автоматического монтирования файловых систем, регистрации событий, настройки имени хоста и других системных задач.
В этой статье объясняется, как составить список служб в Linux.
Список служб Linux
systemctl — это утилита командной строки, которая используется для управления systemd и службами. Он является частью экосистемы systemd и по умолчанию доступен во всех системах.
Чтобы получить список всех загруженных служебных единиц, введите:
Каждая строка вывода содержит следующие столбцы слева направо:
Если вы хотите увидеть все установленные файлы модулей, а не только загруженные, используйте:
Отображение статуса службы
Чтобы проверить статус службы, используйте команду systemctl status :
Где — это имя сервисной единицы, которую вы хотите проверить. Например, чтобы определить текущий статус службы nginx, вы должны запустить:
Команда напечатает следующую информацию:
Команда покажет вам статус службы. Если служба активна, команда возвращает статус выхода 0, что может быть полезно при использовании команды внутри сценариев оболочки.
Выводы
Мы показали вам, как использовать команду systemctl для systemctl списка служб Linux и проверки их статуса.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии ниже.
Управление сервисами в Linux. Команда systemctl
Что такое сервисы в Linux
Сервисы или службы — это программы, которые работают в системе Linux в фоновом режиме. Обычно они запускаются при загрузке системы. Большинство сервисов необходимы для полноценной работы системы, то есть они являются своего рода кирпичиками, из которых строится работающая система.
При запуске системы загружается целый ряд сервисов, которые включены для автозагрузки. Сервисы работают пока система запущена, и выгружаются при выключении системы.
Чаще всего в Linux дистрибутивах для инициализации сервисов используется демон Systemd. К Systemd-дистрибутивам относятся Ubuntu, Debian, Linux Mint, Fedora, openSUSE, Solus и другие.
Есть дистрибутивы, которые не используют Systemd. Вместо Systemd могут использоваться такие системы инициализации, как Upstart, SysV.
В качестве примеров сервисов можно привести: веб-сервер Apache, Network Manager, файрвол Ufw и другие.
Список сервисов
Чтобы просмотреть список всех сервисов можно воспользоваться командой:
Данная команда пробегает по алфавитному списку всех доступных сервисов и выполняет для них команду status.
В выводе команды используются следующие обозначения:
Запуск сервиса
Для запуска сервиса используется команда systemctl start имя_сервиса
Останов сервиса
Для остановки сервиса используется команда systemctl stop имя_сервиса
Перезапуск сервиса
Перезапуск сервиса выполняется командой systemctl restart имя_сервиса
Обычно перезапуск конкретного сервиса требуется, когда были изменены настройки данного сервиса.
Автозагрузка сервисов
Чтобы сервис стартовал (загружался) при запуске системы, его нужно включить в список автозагрузки. Для этого используется команда systemctl enable имя_сервиса
Чтобы включить сервис в автозапуск и сразу же запустить используется команда:
Чтобы удалить сервис из автозагрузки, используется команда systemctl disable имя_сервиса
Статус сервиса
Для вывода информации (статуса) сервиса используется команда systemctl status имя_сервиса
Чтобы проверить, запущен ли в данный момент сервис, используется команда systemctl is-active имя_сервиса
Чтобы проверить, включен ли сервис для автозапуска при загрузке системы, используется команда systemctl is-enabled имя_сервиса
Заключение
Мы рассмотрели наиболее часто используемые команды утилиты systemctl. Полный список команд и опций утилиты systemctl можно получить, выполнив:
Управление службами Linux
В операционной системе linux, так же как и в Windows, кроме обычных программ, которые могут взаимодействовать с пользователем есть еще один вид программ. Это работающие в фоне службы. Важность служб тяжело переоценить, они следят за состоянием системы, обеспечивают автоматическое подключение внешних устройств и сети, позволяют процессам взаимодействовать с оборудованием (dbus), а также в виде служб реализованы различные веб-серверы и серверы баз данных. В отличие от пользовательских программ, службы выполняются в фоне, и пользователь не имеет к ним прямого доступа. Пользователь еще не вошел в систему, только началась загрузка а основные службы уже запущенны и работают.
В этой статье мы рассмотрим управление службами Linux. Мы не будем трогать уже устаревшие системы, такие как SysVinit, сосредоточимся только на Systemd. Вы узнаете, как посмотреть запущенные службы linux, а также останавливать и запускать их самому.
Немного теории
Но потом на смену этому методу пришла новая модель и система инициализации systemd. Система инициализации запускается сразу после загрузки ядра и начинает инициализировать службы, теперь появилась возможность параллельной инициализации, а также зависимостей между службами. Таким образом, теперь можно определить сложное дерево порядка запуска служб. Но мы не будем вникать в подробности создания служб, нас интересует только сам процесс запуска. После запуска systemd собирает весь вывод службы в лог, и следит за ее работой, если служба аварийно завершилась, то автоматически ее перезапускает.
Служба в Systemd описывается файлом юнита, в нем описано что с ней нужно делать и как себя вести. Существуют такие типы служб:
Нас будут интересовать только service, и совсем немного target, но мы рассмотрели все остальные, чтобы вы смогли взглянуть на картину немного шире. Основы рассмотрели, теперь будет настройка служб LInux.
Утилита systemctl
$ systemctl опции команда служба служба.
Рассмотрим все по порядку. Опции очень сильно зависят от команд, поэтому рассмотрим их позже, а пока пройдемся по командах:
А теперь основные опции:
Как видите, опции будут мало полезны и лучше обратить больше внимания на команды, с помощью них выполняются все действия.
Управление службами Linux
Теперь, когда вы уже знаете все основы, команды и параметры можно переходить к делу. Со всеми остальными тонкостями разберемся по пути. Сначала давайте посмотрим запущенные службы linux. Нас будут интересовать только программы, а не все эти дополнительные компоненты, поэтому воспользуемся опцией type:
Следующая команда позволяет получить список служб linux, в который входят все службы, даже не запущенные, те, которые не запускались, но известны systemd, но это еще не все службы в системе:
Дальше больше. Вы можете отсортировать список служб systemctl по состоянию. Например, только выполняющиеся:
Или те, которые завершились с ошибкой:
Для фильтрации можно брать любой показатель состояния из любой колонки. Другой командой мы можем посмотреть все файлы конфигурации служб на диске. Тут не будем фильтровать по типу, пусть программа покажет все:
Теперь отфильтруем только службы linux:
Здесь вы тоже можете использовать фильтры по состоянию. Теперь вы знаете как посмотреть запущенные службы linux, идем дальше.
Чтобы запустить службу используется команда start, например:
sudo systemctl start application.service
Причем расширение service можно опустить, оно и так подставляется по умолчанию. Если запуск прошел хорошо, программа ничего не выведет.
Остановить службу linux можно командой:
sudo systemctl stop application
Посмотреть состояние службы позволяет команда status:
sudo systemctl status application
Здесь вы можете видеть, состояние running, exited, dead, failed и т д. А также несколько последних строчек вывода программы, которые очень помогут решить проблему с запуском если она возникнет.
Автозагрузка служб в systemd
Как вы знаете, systemd позволяет автоматически загружать службы при запуске системы по мере их надобности. Команда list-unit-files показывает добавлена ли служба в автозагрузку.
Поэтому чтобы получить список служб linux, запускаемых автоматически достаточно отфильтровать ее вывод по состоянию:
Все службы, запускаемые по умолчанию. Можете также посмотреть службы static. Чтобы добавить службу в автозагрузку linux используйте команду enable:
sudo systemctl enable application
А для того чтобы убрать ее из автозагрузки:
sudo systemctl disable applciation
Также, вы можете посмотреть разрешена ли сейчас автозагрзука для службы:
sudo systemctl is-enabled application
Утилита просто выведет состояние enabled, disabled или static.
Выводы
🗂️ Как вывести список всех запущенных служб на Systemd в Linux
Системы Linux предоставляют разнообразные системные службы (такие как process management, login, syslog, cron и т. д.) и сетевые службы (такие как удаленный вход в систему, электронная почта, принтеры, веб-хостинг, хранение данных, передача файлов, доменное имя разрешение (с использованием DNS), динамическое назначение IP-адресов (с использованием DHCP) и многое другое).
Технически, сервис – это процесс или группа процессов (обычно называемых демонами), непрерывно работающих в фоновом режиме, ожидающих поступления запросов (особенно от клиентов).
Linux поддерживает различные способы управления (запуск, остановка, перезапуск, включение автозапуска при загрузке системы и т. д.), обычно через менеджер процессов или служб.
В большинстве, если не во всех современных дистрибутивах Linux, используется один и тот же диспетчер процессов: systemd.
Systemd – менеджер системы и сервисов Linux; замена init, которая совместима со скриптами инициализации SysV и LSB, а команда systemctl является основным инструментом для управления systemd.
В этом руководстве мы покажем, как составить список всех запущенных служб в systemd на Linux.
Список запущенных сервисов под SystemD в Linux
Когда вы запускаете команду systemctl без каких-либо аргументов, она отображает список всех загруженных модулей systemd (см. документацию по systemd для получения дополнительной информации о модулях systemd), включая службы, показывая их состояние (независимо от того, актив на оно или нет).
Как просмотреть статус службы в Linux с помощью systemctl
Мы используем systemctl status команду под systemd для просмотра статуса данной службы в операционных системах Linux..
Просмотр статуса сервиса:
Синтаксис команды systemctl следующий
systemctl status
systemctl status
Как просмотреть статус службы под названием nginx
Тип:
$ systemctl status nginx.service
ssh server status
$ systemctl status sshd.service
Lighttpd web server status
$ systemctl status lighttpd.service
Точка (« ● ») использует цвет на поддерживаемых терминалах, чтобы быстро обозначить состояние устройства. Белый цвет указывает на «неактивное» или «деактивированное» состояние. Красный цве т указывает на состояние «сбой» или «ошибка». Зеленый цвет указывает на состояние «активное», «перезагрузка» или «активация».
Понимание состояний службы / модулей systemd
Статус службы Linux зависит от различных состояний, таких как:
Service status | Описание |
---|---|
active (running) | Служба или демон работает в фоновом режиме. Например, веб-сервер sshd или nginx / apache и список для входящего трафика. |
active (exited) | Служба успешно запущена из файла конфигурации. Обычно однократная конфигурация сервисов считывается до выхода из сервиса. Например, сервис AppArmor или Firewall. |
active (waiting) | Наша служба работает, но ожидает события, такого как событие CPUS / печати. |
inactive | Сервис не работает. |
enabled | Служба включается во время загрузки. |
disabled | Служба отключена и не будет запущена при загрузке сервера Linux. |
static | Служба не может быть включена в Linux, но обычно запускается другим модулем systemd автоматически. Другими словами, файл модуля не включен и не имеет условий для разрешения в разделе [Установить] файл модуля. |
masked | Служба полностью отключена, и любая операция запуска на ней всегда заканчивается неудачей. |
alias | Имя службы — это псевдоним. Это означает, что служба является символической ссылкой на другой файл модуля. |
linked | Доступен через одну или несколько символических ссылок на файл модуля (постоянно в /etc/systemd/system/ или временно в /run/systemd/system/), даже если файл модуля может находиться за пределами пути поиска файла модуля |
В настоящее время systemd поддерживает следующие модули
Чтобы показать все установленные файлы модулей, используйте:
$ sudo systemctl list-unit-files
Linux просмотр статуса службы
Введите следующую команду, чтобы просмотреть все службы и состояние модулей в вашей системе Linux с момента загрузки:
$ sudo systemctl
Используйте команду grep command/egrep command чтобы отфильтровать требуемые единицы / службы
$ sudo systemctl | grep ssh
$ sudo systemctl | egrep ‘apache|nginx|lighttpd|php’
Как вывести список модулей, которые systemd в настоящее время имеет в памяти
Выполните следующую команду:
$ sudo systemctl list-units
$ sudo systemctl list-units | more
$ sudo systemctl list-units | grep sshd
Список systemd/systemctl всех отказавших модулей units/services в Linux
Что делать, если такой сервис, как nginx, не запущен?
Как просмотреть источник файла службы / модуля systemd
Передайте параметр cat следующим образом:
$ sudo systemctl cat
$ sudo systemctl cat nginx.service
Вывод
Вы узнали о перечислении модулей systemd, включая службы Linux, с помощью команды systemctl. См. Документацию по systemctl или введите следующую команду man: