Перейти к содержимому

Как найти и завершить процесс, занимающий порт, в Windows (3000, 5173, 8080)

Когда сервер разработки не запускается из-за занятого порта, этот порт уже слушает что-то другое. В командной строке выведите список слушающих портов с идентификатором владеющего процесса, затем завершите его:

Окно терминала
netstat -ano | findstr :3000
taskkill /PID 12345 /F

Последний столбец строки LISTENING - это PID (findstr :3000 находит и :30001, поэтому смотрите на локальный адрес). Команда tasklist /FI "PID eq 12345" показывает, что это за программа. В PowerShell тот же поиск выглядит так:

Окно терминала
Get-NetTCPConnection -LocalPort 3000 -State Listen | Select-Object LocalPort, OwningProcess
Get-Process -Id 12345
Stop-Process -Id 12345 -Force

Добавьте к taskkill параметр /T, чтобы завершить и дочерние процессы. Процессам, которыми владеет другой пользователь или система, может потребоваться окно с повышенными правами (от имени администратора).

Для приложения, которое вы запускаете через Moonpool, искать PID не нужно. Укажите приложению port, и остановка освободит его. Для приложения типа web это killMode по умолчанию, здесь он записан явно:

apps.json
{
"id": "api",
"name": "API",
"group": "Web apps",
"type": "web",
"cwd": "C:\\code\\api",
"command": "npm start",
"port": 3000,
"env": { "PORT": "3000" },
"killMode": "port"
}

Сначала остановка завершает терминал, запущенный Moonpool, затем принудительно завершает всё, что по-прежнему слушает port. В Windows это тот же поиск, что и выше (Get-NetTCPConnection -LocalPort <port> -State Listen), а затем taskkill /PID <pid> /T /F для каждого владельца.

  • Если порт занял процесс, который запускали не вы, Moonpool показывает приложение как работающее, но не «управляемое Moonpool». Нажмите Остановить: шаг с port всё равно выполнится.
  • Moonpool отказывается завершать по порту фиксированный список общих процессов Windows, таких как серверная часть Docker Desktop, svchost и узел WSL. Для приложения Docker используйте killMode со значением command или none, но не port. См. Приложения Docker в Windows.
  • Это работает только для портов приложений, перечисленных в apps.json. Для любого другого порта используйте команды из начала страницы.
  • Режим port завершает всё, что слушает порт, включая копию, запущенную вручную, поэтому используйте его только для портов, которые больше никому на компьютере не нужны.

Moonpool: бесплатное программное обеспечение от FasterDB