«Порт 4200 уже используется» при запуске команды ng serve

179

Я изучаю Angular 2 и впервые использую угловой проект CLI для создания проекта песочницы.

Я смог запустить команду "NG serve", и она прекрасно работает. Я хотел остановить его запуск, поэтому я запустил «Control Z».

Когда я снова попытался запустить команду «ng-serve», она выдала мне «Порт 4200 уже используется».

Я запустил «PS», чтобы получить список PID, и убил PID для angular-cli и снова запустил «ng-serve», тем не менее, он выдает тот же порт при ошибке использования.

peztherez
источник
Пожизненный разработчик Windows. Я провел последние несколько месяцев на Mac и научился использовать CMD + Z. Я снова
столкнулся с
Если вы работаете над кодом Visual Studio, закройте его и перезапустите.
Куркула

Ответы:

323

Это то, что я использовал, чтобы убить прогресс на порту 4200

Для пользователей Linux:

sudo kill $(sudo lsof -t -i:4200)

Вы также можете попробовать это:

sudo kill `sudo lsof -t -i:4200`

Для пользователей Windows:

Порт номер 4200 уже используется. Откройте cmd как администратор. Введите следующую команду в cmd:

netstat -a -n -o

И затем, найдите порт с номером порта 4200, щелкните правой кнопкой мыши на терминале и нажмите кнопку поиска, введите 4200 в поле «найти что» и нажмите кнопку «найти далее». Допустим, вы обнаружили, что порт 4200 используется номером pid 18932. Введите команду ниже в CMD:

taskkill -f /pid 18932

Для UNIX:

alias ngf='kill -9  $(lsof -t -i:4200);ng serve'

Теперь запустите ngf (вместо ng serve ) в терминале из папки проекта. Это уничтожит все процессы, использующие порт 4200, и запустит ваш проект Angular.

Барт Хоекстра
источник
3
Хотя я понимаю, что это правильное решение, не кажется ли это ужасным решением? Что если я захочу запустить ng serveв другом каталоге? Не имеет смысла убивать сервер таким образом и затем перезагружать его где-то еще, или я что-то упустил?
Натан Данн
6
Вы можете указать другой порт с помощью: --port <new_port>
estellezg
4
Это убивает браузер по умолчанию. И не полезно.
Шидзин
7
это убило мое окно браузера. Я понял это в конце концов, хотя ... Я сделал ^Zна существующем угловом экземпляре, который использовал порт по умолчанию, глупый я!
quietContest
1
Чтобы быстро проверить, какой pid использует порт 4200 в Windows, используйте netstat -a -n -o | findstr 4200
Penta
186

Открой свой cmd.exeкак administrator,

затем найти PIDизport 4200

netstat -ano | findstr :4200

Пид для порта 4200

Здесь у меня есть 3 PID:

  • Красный - из "ng-serve" (127.0.0.1:4200), который LISTENING
  • Зеленый из "вашего браузера"

убить только порт 4200 (убить красный PID):

taskkill /PID 15940 /F

примечание: убить зеленую заставит ваш браузер закрыть принудительно.

Taskkill PID 15940

Теперь вы можете выполнить «ng-serve», чтобы запустить ваше угловое приложение с того же порта 4200.




Дополнительный материал:

Один вкладыш: после того, как вы нашли способ оптимизировать это, вот команда One-liner этого ответа: (особая благодарность: Josep Alsina за эти советы)

for /f "tokens=5" %a in ('netstat -ano ^| find "4200" ^| find "LISTENING"') do taskkill /f /pid %a
Энтони Кэл
источник
2
Не забудьте сделать это cmd, не Git Bash.
Лев
2
Syntsax для GitBash в Windows netstat -ano | findstr: 4200; taskkill -PID <foundPID> -F
интехо
Обновление GIt Bash решает мою проблему
Исмаил Фарук
90

В Mac OS X вам понадобится следующая команда:

sudo lsof -t -i tcp:4200 | xargs kill -9

Помните, что вам нужно убить веб-сервер Angular с помощью Command + C.

Джулиан Фрейзер
источник
Работал и в Ubuntu.
Бекарио Старший
2
Команда + C - это ключ, чтобы убить любой процесс. Я и другие разработчики в спешке нажимаем команду + z, которая просто приостанавливает процесс, а не убивает его.
Жасмит
2
@jasmeet нажатие Ctrl + Z тоже получало меня несколько раз!
Джулиан Фрейзер
26

Не Ctrl + Z, вы должны запустить для остановки Ctrl + C

Эмир Мамашов
источник
безусловно, самое простое решение проблемы, даже если технически это не отвечает на вопрос ОП
Флориан
@ Я думаю, что решение, потому что мой ответ исправляет причину, а не следствия
Эмир Мамашов
16

Используйте эту команду, чтобы убить нг:

pkill -9 ng
Лолита
источник
3
я использовал его на своем Ubuntu 18.04. он высветил мой экран и привел меня к
входу
Это убивает все другие приложения. Но, наконец, работает для меня .. спасибо
Sakthikanth
13

ng serve --port <YOUR_GIVEN_PORT_NUMBER>

Вы должны попробовать приведенную выше команду для запуска на заданном порту.

Шубхам Верма
источник
Хорошо работал на Ubuntu 18.
Марк Одей
11

Когда вы используете Ctrl+Z, вы собираетесь приостановить запущенную задачу, но не убить ее. Позже вы можете использовать команду, fgчтобы возобновить задачу. Если вы хотите выйти ng serve, вы должны использовать Ctrl+Cвместо этого, в котором также освободит порт 4200.

Роман Ло
источник
7

Прямо сейчас вы можете установить, --port 0чтобы получить бесплатный порт.

ng serve --port 0 // will get a free port for you
Евгений
источник
В этом случае не забудьте использовать --openфлаг, иначе вы не будете знать, в каком порту был запущен.
rplaurindo
1
Терминал сказал мне, какой порт он выбрал. Это должно быть правильным ответом для пользователей Windows.
Рон
6

Мы можем принудительно убить порт, выполнив следующую команду.

kill -2 $(lsof -t -i:4200)
Шарат Парупати
источник
6

Для Windows:

Откройте командную строку и

тип: netstat -a -o -n

Найдите PID процесса, который вы хотите убить.

Тип: taskkill /F /PID 16876

Этот 16876 - это PID для процесса, который я хочу уничтожить - в этом случае это процесс 4200 - проверьте вложенный файл. Вы можете указать любой номер порта.

введите описание изображения здесь

Теперь ng serveвведите : чтобы запустить ваше угловое приложение на том же порту 4200

Джей Карелия
источник
5

Я поделился этим, так как две команды, работающие с птицами, не выполняли работу на моем Mac:

sudo kill $(sudo lsof -t -i:4200)

sudo kill `sudo lsof -t -i:4200`

Следующий сделал, но если вы использовали встроенный терминал в Visual Code, попробуйте использовать терминал вашего компьютера и добавьте команду fowling:

lsof -t -i tcp:4200 | xargs kill -9
Ахмед Хади
источник
Спасибо, это работает для меня, все ответы выше не работают для меня, так как я использую терминал VScode в ОС Ubuntu.
СУРЕНДРАНАТ С
4
netstat -anp | grep ":4200"

Это скажет вам, у кого есть порт.

Джошуа
источник
это - ан? это ничего не вернуло, поэтому я просто добавил пробел, потому что ваша команда запрашивала «nestat: option требует аргумента --p»
peztherez
Ваш netstat должен отличаться от моего. Может быть, добавить тег ОС.
Джошуа
4
ng serve --port 4201 --live-reload-port 4200

и доступ с помощью localhost:4201

Это должно работать как временное решение.

или

попробуйте перечислить использование порта с помощью
lsof -i:4200
и убить его вручную с помощью
sudo kill -9 <Process PID using port 4200>

Shijin
источник
4

Таким образом, существует более одного решения: 1) Используя другой порт для определения номера порта,

ng serve --open --port 4201

2) убивая процесс

ctrl + c // for kill
Close all node terminal which is related for running the app.

3) Тип

netstat -a -n -o

в командной строке найдите соответствующий PID порта и убейте его

taskkill /F /PID (pid number)

4) Тип netstat -ano|findstr :4200

взял PID внешнего адреса, который содержит номер порта, а затем убил его

taskkill /PID (pid number)/F

Мохаймин Моин
источник
4

Чтобы остановить все локальные порты, работающие в Windows, используйте этот простой комментарий, вместо этого ищите pid отдельно, используя netstat,

Он находит все pid и останавливает локальный порт, который в данный момент работает,

taskkill /im node.exe /f
Саравана Ва
источник
полезно для угловых 4 в окнах :)
Икар
3

Просто перезапустите IDE, которую вы используете, и она заработает.

Альдо
источник
3

С Ctrl + Z вы кладете программу в фоновом режиме. В Linux вы можете вернуть сеанс на передний план с помощью следующей команды:

fg ng serve

Вам не нужно убивать процесс.

Дух
источник
2

Самая простая однострочная команда:

 sudo fuser -k 4200/tcp
Салман Ахмед
источник
2

В моем случае ничего из вышеперечисленного не сработало.

UBUNTU 18.04 VERSION

Ниже команда сработала.

sudo kill -9 $(lsof -i tcp:4200 -t)
Инопланетянин
источник
2

Если вы используете VSCode, у вас есть возможность убить терминал и добавить новый терминал. Закройте вкладку и откройте новую вкладку. Это сработало для меня.

Отредактировано: используйте ctrl + c и нажмите y. Без терминала также можно продолжить. Если вы хотите открыть новый экземпляр Visual Studio и запустить другое приложение, вы можете использовать ng serve --port 4401.

ДИБЬЯ РАНДЖАНСКАЯ ТРИПАТИЯ
источник
2

Терминал VScode в ОС Ubuntu использует следующую команду, чтобы убить процесс

lsof -t -i tcp:4200 | xargs kill -9
SURENDRANATH S
источник
1

Вы также можете попробовать запустить приложение в Visual Studio Code -:

ng serve --open --port 4201

Вы можете дать любой номер порта.

HarmesH KaushiK
источник
1

Он говорит, что мы уже работаем с портами № 4200, пожалуйста, используйте другой порт вместо 4200. Ниже приведена команда для решения проблемы.

нг служить --порт 4300

Дхарма Рао Палли
источник
1

вы можете использовать fuser -k 4200 / tcp, если это операционная система Linux

Махиндра Неупане
источник
1

Завершите процесс и закройте терминал, который вы использовали для запуска приложения на этом порту.

Георги Георгиев
источник
1

Вместо того, чтобы убивать весь процесс или использование ctrl+z, вы можете просто использовать, ctrl+cчтобы остановить сервер, и можете с радостью использовать ng serve commandбез него errorsили, если вы хотите запустить на другом порту, просто используйте эту команду ng serve --port portno(ex: ng serve --port 4201).

Alekya
источник
1

Для Ubndu 18.04 sudo lsof -t -i tcp: 3000 | XARGS убить -9

Это происходит, когда порт был неудачно завершен, поэтому эта команда прекратит его 4200 или 3000 или 3300 любой

user2642281
источник
0

Я также столкнулся с той же ошибкой msg, поэтому я попробовал ng serve --port 12012, и она работала нормально.

Сачин Гайквад
источник
6
мы не можем много нового порта каждый раз.
Шидзин
10
Кто голосует против таких ответов?
shark1608
0

Если вы компилируете свой угловой код JS как в CMD, так и в IDE, то эта проблема возникает. В CMD ваш угловой код JS компилируется автоматически всякий раз, когда вы изменяете свой угловой код JS в IDE, а затем ваша IDE хочет занять тот же порт, т. Е. 4200, который уже занят CMD. Итак, есть простое решение для этой проблемы, просто закройте cmd при компиляции вашего кода в IDE.

Вишал
источник
0

Я сталкиваюсь с одной и той же проблемой каждый раз, когда мне приходится убивать порт.

Я попробовал ./node_modules/.bin/ng serve --proxy-config proxy.conf.json --host 0.0.0.0вместо npm startи его работы

Исмаил Фарук
источник