Как составить список всех запущенных служб в 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. Мы также рассмотрели, как проверить, что служба порта прослушивает, и как просмотреть службы или порты, открытые в системном брандмауэре.
Есть ли у вас какие-либо дополнения или вопросы? Если да, свяжитесь с нами, используя форму комментариев ниже.