Системы 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
# 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
# vim ~/.bashrc
Затем добавьте следующую строку под списком псевдонимов, как показано на скриншоте.
alias running_services='systemctl list-units --type=service --state=running'
# running_services
Кроме того, важным аспектом служб является порт, который они используют.
Чтобы определить порт, который прослушивает процесс-демон, вы можете использовать инструменты netstat или ss, как показано далее.
Где флаг -l означает вывод всех прослушивающих сокетов, -t отображает все TCP-соединения, -u показывает все UDP-соединения, -n означает печать числовых номеров портов (вместо имен приложений) и -p означает показ имени приложения.
# netstat -ltup | grep zabbix_agentd или # ss -ltup | grep zabbix_agentd
# firewall-cmd --list-services [FirewallD] # firewall-cmd --list-ports $ sudo ufw status [UFW Firewall]