Поиск по сайту:

Как составить список всех запущенных служб в Systemd в Linux


Системы Linux предоставляют множество системных служб (таких как управление процессами, вход в систему, системный журнал, cron и т. д.) и сетевых служб (таких как удаленный вход в систему, электронная почта, принтеры, веб-хостинг, хранение данных). , передача файлов, разрешение доменных имен (с использованием DNS), динамическое назначение IP-адресов (с использованием DHCP) и многое другое).

Технически служба — это процесс или группа процессов (обычно называемых демонами), которые постоянно работают в фоновом режиме и ожидают поступления запросов (особенно от клиентов).

Linux поддерживает различные способы управления (запуск, остановка, перезапуск, включение автоматического запуска при загрузке системы и т. д.) службами, обычно через диспетчер процессов или служб. Большинство, если не все, современные дистрибутивы Linux теперь используют один и тот же менеджер процессов: systemd.

Что такое системд?

Systemd — менеджер систем и служб для Linux; полная замена процесса init, совместимая со сценариями инициализации SysV и LSB, а команда systemctl является основным инструментом для управлять systemd.

Зачем перечислять запущенные службы в Linux?

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

В этом руководстве мы продемонстрируем процесс составления списка всех запущенных служб под Systemd в Linux, предоставляя подробное описание для пользователей всех уровней опыта.

Список запущенных служб под SystemD в Linux

Когда вы запускаете команду systemctl без каких-либо аргументов, она отображает список всех загруженных модулей systemd (дополнительную информацию о модулях systemd читайте в документации systemd), включая службы, с указанием их статуса (активны или нет). ).

systemctl 

Вывести список всех юнитов в systemctl

Чтобы вывести список всех загруженных служб в вашей системе (активных, запущенных, завершенных или неисправных), используйте подкоманду list-units и переключатель --type со значением service.

systemctl list-units --type=service
OR
systemctl --type=service

А чтобы вывести список всех загруженных, но активных служб, как запущенных, так и вышедших, вы можете добавить параметр --state со значением active, как показано ниже.

systemctl list-units --type=service --state=active
OR
systemctl --type=service --state=active

Список запущенных служб в systemctl

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

systemctl list-units --type=service --state=running 
OR
systemctl --type=service --state=running

Давайте рассмотрим ключевые термины, относящиеся к модулям Systemd и их статусу:

  • Единица. Единицей может быть служба, сокет, устройство или другие объекты.
  • Загрузка – указывает, загружено ли устройство или нет. Юнит может быть загружен, но не обязательно активен.
  • Активен – показывает, активно ли работает устройство или возникли ли у него проблемы и находится ли он в неисправном или неактивном состоянии.
  • SUB – предоставляет дополнительную информацию о конкретном состоянии устройства. Для служб это может указывать, запущена ли служба (запущена), остановлена (завершена) или возникла проблема (сбой).
  • Описание. Оно помогает пользователям определить и понять назначение устройства, не углубляясь в подробные файлы конфигурации.

Создайте псевдоним для systemctl

Если вы часто используете предыдущую команду, вы можете создать команду-псевдоним в файле ~/.bashrc, как показано, чтобы легко вызывать ее.

vim ~/.bashrc

Затем добавьте следующую строку под список псевдонимов, как показано на скриншоте.

alias running_services='systemctl list-units  --type=service  --state=running'

Сохраните изменения в файле и закройте его. С этого момента используйте команду «running_services» для просмотра списка всех загруженных и активно работающих служб на вашем сервере.

running_services	#use the Tab completion 

Найдите порт, который прослушивает процесс

Кроме того, важным аспектом сервисов является порт, который они используют. Чтобы определить порт, который прослушивает процесс-демон, вы можете использовать команду netstat или ss, как показано.

Если флаг -l означает печать всех прослушиваемых сокетов, -t отображает все TCP-соединения, -u показывает все UDP-соединения, - n означает печать числовых номеров портов (вместо имен приложений), а -p означает отображение имени приложения.

netstat -ltup | grep zabbix_agentd
OR
ss -ltup | grep zabbix_agentd

В пятом столбце указан сокет: Локальный адрес:Порт. В этом случае процесс zabbix_agentd прослушивает порт 10050.

Листинг запущенных служб брандмауэра

Кроме того, если на вашем сервере работает служба брандмауэра, которая контролирует, как блокировать или разрешать трафик к или от выбранных служб или портов, вы можете перечислить службы или порты, которые были открыты в брандмауэре, используя firewall-cmd< или ufw (в зависимости от используемого вами дистрибутива Linux), как показано.

firewall-cmd --list-services   [FirewallD]
firewall-cmd --list-ports

sudo ufw status     [UFW Firewall]

На данный момент это все! В этом руководстве мы продемонстрировали, как просмотреть запущенные службы в systemd в Linux. Мы также рассмотрели, как проверить, что служба порта прослушивает, и как просмотреть службы или порты, открытые в системном брандмауэре.

Есть ли у вас какие-либо дополнения или вопросы? Если да, свяжитесь с нами, используя форму комментариев ниже.