Способы оплаты Abuse

Как посмотреть запущенные службы в Linux

03.09.2025, 10:27

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

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

В Linux есть несколько способов управлять службами: запускать, останавливать, перезапускать, включать автозапуск при загрузке. Практически все современные дистрибутивы используют единый менеджер процессов — systemd.

Что такое systemd?

Systemd — менеджер системы и служб для Linux, пришедший на смену init. Он совместим со старыми скриптами SysV и LSB. Основной инструмент для управления им — команда systemctl.

Зачем смотреть список работающих служб?

Это может необходимо для:

— контроля использования ресурсов;

— диагностики проблем с производительностью;

— проверки, что важные сервисы действительно активны;

— повышения безопасности и стабильности.

Systemd сильно упрощает  эту задачу: достаточно нескольких команд, чтобы вывести, проверить и при необходимости перезапустить службы.

Просмотр списка служб через systemctl

Если выполнить systemctl без параметров, появится список всех служб systemd с их статусом.

Примеры:

Все загруженные службы:

systemctl list-units --type=service

Только активные:

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

Только работающие:

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

Упрощаем работу: создаём alias

Если часто используете длинные команды, можно добавить алиас в ~/.bashrc:

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

Теперь достаточно написать running_services, чтобы быстро вывести список работающих служб.

Как узнать, какой порт использует служба

Порты можно проверить через netstat или ss. Например:

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

Флаги:
→ -l — слушающие сокеты,
→ -t — TCP,
→ -u — UDP,
→ -n — номера портов,
→ -p — название процесса.


Проверка открытых портов в файрволе

В зависимости от дистрибутива:

firewall-cmd --list-services   # для FirewallD
firewall-cmd --list-ports
sudo ufw status                # для UFW

Автоматический мониторинг служб

Например, вы можете настроить логирование каждые 5 минут через cron

*/5 * * * * systemctl list-units --type=service --state=running > /tmp/running_services.log

Так у вас всегда будет свежий лог в /tmp/running_services.log.

Автоматический перезапуск при сбое

Чтобы служба перезапускалась сама, нужно изменить её unit-файл:

systemctl edit apache2

Далее нужно добавить:

[Service]
Restart=always
RestartSec=5s

Затем еще раз проверьте изменения и перезапустите:

systemctl daemon-reload
systemctl restart apache2

Повышение безопасности служб

Например, в конфигурацию можно добавить:

[Service]
NoNewPrivileges=true
ProtectSystem=full
PrivateTmp=true

Эти опции ограничивают права процессов и доступ к системе.