Иногда сервис не запускается и пишет, что порт уже занят:
bind: address already in use
В такой момент не нужно гадать, какой процесс мешает. Можно сразу посмотреть listening-сокеты через ss:
sudo ss -ltnp
Флаги читаются так:
-l listening
-t TCP
-n не резолвить имена
-p показать процесс
Если нужен конкретный порт, добавь фильтр:
sudo ss -ltnp 'sport = :8080'
В выводе будет видно адрес, порт, имя процесса и PID:
LISTEN 0 4096 0.0.0.0:8080 users:(("java",pid=2481))После этого можно проверить процесс:
ps -fp 2481
И уже спокойно решить, что делать, остановить старый сервис, поменять порт или разобраться, почему процесс остался висеть.
Для UDP почти то же самое:
sudo ss -lunp
А если нужно увидеть все соединения к порту:
sudo ss -tanp 'sport = :8080'
ss помогает быстро понять, какой процесс занял порт. Это одна из первых команд при проблемах со стартом сервисов, Docker, Nginx и backend-приложений.
➡️ DevOps Ready | #совет
