
Address already in use: как найти, кто занял порт, и почему он не всегда освобождается сразу
Представьте: два часа ночи, вы деплоите фикс — а сервис не поднимается: Address already in use. Гуглите, находите PID, делаете kill -9. Помогает. Но утром та же ошибка на том же порту.Всё потому, что «порт занят» — это на самом деле два разных диагноза с разными решениями, а на форумах их валят в кучу. В одном случае порт держит живой процесс, и kill действительно помогает. В другом процесс давно мёртв, а порт висит в TIME_WAIT — и тут kill бесполезен, лечится одной строкой в коде.Разбираем оба случая: быстрый фикс под Linux, macOS, Windows и Docker — и что на самом деле происходит с портом, когда процесса уже нет. Понять, при чём тут TIME_WAIT →