Killport Как освободить занятый порт одной командой
Знакомая ситуация? Запускаете сервер, а он ругается: "Address already in use". Или нужно перезапустить контейнер, но он упорно не хочет освобождать порт. В таких случаях мы обычно лезем в lsof или netstat, ищем PID процесса и только потом убиваем его. Но теперь есть способ проще — утилита killport.
Что это за инструмент?
killport — это минималистичная консольная утилита на Rust, которая делает ровно одну вещь, но делает её идеально: убивает процессы, занимающие нужные вам порты. Причём не только обычные процессы, но и докер-контейнеры.
Почему это удобно:
- Не нужно запоминать сложные команды для поиска процессов
- Работает одинаково на Linux, macOS и Windows
- Поддерживает все основные сигналы завершения
- Позволяет сначала проверить (dry run), что будет убито
Основные возможности
1. Убийство процессов по номеру порта
Самый простой сценарий:
killport 8080
Эта команда найдёт и убьёт все процессы, использующие порт 8080.
2. Работа с несколькими портами сразу
Можно указать сразу несколько портов через пробел:
killport 3000 4200 8080
3. Выбор сигнала завершения
По умолчанию используется SIGKILL, но можно указать другой сигнал:
killport -s sigterm 8080 # Более мягкое завершение
killport -s sigkill 8080 # Принудительное завершение (по умолчанию)
4. Работа с контейнерами
Если порт занят докер-контейнером:
killport -m container 8080
5. Режим «только проверка» (dry run)
Перед реальным убийством можно посмотреть, какие процессы будут затронуты:
killport --dry-run 8080
Установка
Есть несколько способов установить killport:
Через Homebrew (для macOS/Linux)
brew install killport
Автоматический скрипт
curl -sL https://bit.ly/killport | sh
Через Cargo (если у вас установлен Rust)
cargo install killport
Вручную из релизов
Можно скачать готовый бинарник для вашей ОС из раздела релизов.
Примеры из жизни
Веб-разработка
Часто после аварийного завершения Node.js-сервера порт остаётся занятым. Вместо перезагрузки системы или ручного поиска процесса:
killport 3000
Работа с Docker
Когда контейнер «завис» и не освобождает порт:
killport -m container 5432 # Освобождаем порт для PostgreSQL
Пакетное освобождение портов
При тестировании микросервисов можно одним махом освободить все используемые порты:
killport 8080 8081 8082 8083
Почему именно killport?
- Написано на Rust — работает быстро и не требует зависимостей
- Кросс-платформенность — один инструмент для всех ОС
- Гибкость — поддержка разных сигналов и режимов работы
- Простота — делает одну задачу, но делает её хорошо
killport — это тот инструмент, который нечасто нужен, но когда он нужен — становится настоящим спасением. Он экономит время и нервы при работе с занятыми портами. Если вы:
- Веб-разработчик
- Работаете с Docker
- Часто сталкиваетесь с занятыми портами
— обязательно попробуйте killport. Это один из тех инструментов, которые стоит добавить в свой набор, даже если пользуешься ими раз в месяц.
