Главная Категории Контакты Поиск

Как удалить процесс на порту

Как с легкостью завершить (убить, удалить) уже запущенный процесс на порту.

Tools ·28.09.2020·читать 1 мин 🤓·Автор: Alex Myzgin

Одна из самых неприятных вещей во время разработки - это момент, когда ты сталкиваешься со следующей ошибкой в командной строке при попытке запустить приложение локально:

Server Error: this port is already in use

В большинстве случаев это означает, что мы забыли о процессе, который работает в фоновом режиме, или думали, что «убили» тот процесс, но на самом деле этого не произошло, поскольку мы не использовали CTRL + C.

Общий подход

На машине Linux / Mac эта команда может помочь:

lsof -ti tcp:[PORT] | xargs kill

Чтобы понять, что же происходит, давай разберем это пошагово:

  • lsof используется для вывода списка открытых файлов, чтобы можно было отслеживать процессы, которые прослушивают определенный порт;
  • -i используется для поиска желаемого порта;
  • -t используется для возврата только PID (идентификатор процесса), который мы ищем;
  • | используется для передачи списка найденных PID следующей команде;
  • xargs используется для применения kill к каждому из этих PID;
  • kill фактически «убивает» каждый PID. Возможно, если процессы нужно «убить» принудительно, нам понадобиться использовать kill -9.

Более простой подход

А сейчас давай рассмотрим более простое решение, которое можно использовать:

# One port
npx kill-port [PORT]

# Multiple ports
npx kill-port [PORT1] [PORT2] [PORTN]

Легче, правда? Таким образом мы извлекаем kill-port пакета npm, чтобы он мог сделать за нас всю грязную работу.

Он гораздо декларативнее и не требует пояснений, поэтому его определенно проще запомнить.

Website, name & logo
Copyright © 2021. Alex Myzgin