Killport Как освободить занятый порт одной командой

28 июл 2025
1,839
42
8
1 месяц

Знакомая ситуация? Запускаете сервер, а он ругается: "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?

  1. Написано на Rust — работает быстро и не требует зависимостей
  2. Кросс-платформенность — один инструмент для всех ОС
  3. Гибкость — поддержка разных сигналов и режимов работы
  4. Простота — делает одну задачу, но делает её хорошо

killport — это тот инструмент, который нечасто нужен, но когда он нужен — становится настоящим спасением. Он экономит время и нервы при работе с занятыми портами. Если вы:

  • Веб-разработчик
  • Работаете с Docker
  • Часто сталкиваетесь с занятыми портами

— обязательно попробуйте killport. Это один из тех инструментов, которые стоит добавить в свой набор, даже если пользуешься ими раз в месяц.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.