Системы 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), включая службы, показывая их состояние (независимо от того, активна оно или нет).
# systemctlЧтобы вывести список всех загруженных служб в вашей системе (независимо от того, активны ли они; запущены, завершились или вышли из строя, используйте подкоманду list-units и ключ —type со значением service.
# systemctl list-units --type=service или # systemctl --type=service
# systemctl list-units --type=service --state=active или # systemctl --type=service --state=active
Но чтобы быстро просмотреть все запущенные службы (т. е. все загруженные и активно запущенные службы), выполните следующую команду.
# systemctl list-units --type=service --state=running или # systemctl --type=service --state=running
Если вы часто используете предыдущую команду, вы можете создать команду алиас в файле ~ /.bashrc, как показано далее, чтобы легко использовать ее.
# vim ~/.bashrc
Затем добавьте следующую строку под списком псевдонимов, как показано на скриншоте.
alias running_services='systemctl list-units --type=service --state=running'Сохраните изменения в файле и закройте файл. И теперь используйте команду running_services для просмотра списка всех загруженных, активно работающих сервисов на вашем сервере.
![]()
# running_services
Кроме того, важным аспектом служб является порт, который они используют.
Чтобы определить порт, который прослушивает процесс-демон, вы можете использовать инструменты netstat или ss, как показано далее.
Где флаг -l означает вывод всех прослушивающих сокетов, -t отображает все TCP-соединения, -u показывает все UDP-соединения, -n означает печать числовых номеров портов (вместо имен приложений) и -p означает показ имени приложения.
# netstat -ltup | grep zabbix_agentd или # 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. Мы также рассмотрели, как проверить порт, который прослушивает служба, и как просмотреть службы или порты, открытые в брандмауэре системы. Есть ли у вас какие-либо дополнения или вопросы? Если да, свяжитесь с нами, используя форму комментария ниже.
0 Комментарии