Как найти и завершить процесс, занимающий порт, в Windows (3000, 5173, 8080)
Когда сервер разработки не запускается из-за занятого порта, этот порт уже слушает что-то другое. В командной строке выведите список слушающих портов с идентификатором владеющего процесса, затем завершите его:
netstat -ano | findstr :3000taskkill /PID 12345 /FПоследний столбец строки LISTENING - это PID (findstr :3000 находит и :30001, поэтому
смотрите на локальный адрес). Команда tasklist /FI "PID eq 12345" показывает, что это за
программа. В PowerShell тот же поиск выглядит так:
Get-NetTCPConnection -LocalPort 3000 -State Listen | Select-Object LocalPort, OwningProcessGet-Process -Id 12345Stop-Process -Id 12345 -ForceДобавьте к taskkill параметр /T, чтобы завершить и дочерние процессы. Процессам, которыми
владеет другой пользователь или система, может потребоваться окно с повышенными правами
(от имени администратора).
Способ Moonpool
Заголовок раздела «Способ Moonpool»Для приложения, которое вы запускаете через Moonpool, искать PID не нужно. Укажите приложению
port, и остановка освободит его. Для приложения типа web это killMode по умолчанию,
здесь он записан явно:
{ "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