“A porta 4200 já está em uso” ao executar o comando ng serve


179

Estou aprendendo angular 2 e, pela primeira vez, estou usando o projeto CLI angular para criar um projeto sandbox.

Consegui executar o comando "ng serve" e funciona muito bem. Eu queria impedir que ele rodasse, então executei o "Control Z".

Quando tentei executar o comando "ng-serve" novamente, obtive-me "A porta 4200 já está em uso".

Corri o "PS" para obter uma lista do PID e matei o PID para o angular-cli e executei o "ng-serve" novamente, mesmo assim, dá a mesma porta em erro de uso.


Desenvolvedor de Windows ao longo da vida, passei os últimos meses em um Mac e treinei-me para usar o CMD + Z. Comecei a enfrentar esse problema no Windows, pois estava com o padrão CTRL + Z em vez de CTRL + C
Kildareflare

Se você estiver trabalhando no código do visual studio, feche-o e reinicie-o.
Kurkula 23/06

Respostas:


323

Isto é o que eu usei para matar o progresso na porta 4200

Para usuários Linux:

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

Você também pode tentar o seguinte:

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

Para usuários do Windows:

O número da porta 4200 já está em uso. Abra o cmd como administrador. Digite abaixo o comando no cmd:

netstat -a -n -o

E, em seguida, localize a porta com o número da porta 4200 clicando com o botão direito do mouse no terminal e clique em Localizar, digite 4200 em "encontre o que" e clique em "encontrar próximo": digamos que você descobriu que o número da porta 4200 é usado pelo pid 18932. Digite o comando abaixo em cmd:

taskkill -f /pid 18932

Para UNIX:

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

Agora execute o ngf (em vez do ng serve ) no terminal a partir da pasta do projeto. Isso matará todos os processos usando a porta 4200 e executa seu projeto Angular.


3
Embora eu perceba que esta é a solução correta, isso não parece ser uma solução horrível? E se eu quiser executar ng serveem um diretório diferente? Não faz sentido matar o servidor dessa maneira e depois reiniciá-lo em outro lugar ou estou faltando alguma coisa?
Nathan Dunn

6
Você pode especificar uma porta diferente com: --port <new_port>
estellezg

4
Isso mata o navegador padrão. E não ajuda.
Shijin

7
isso matou a janela do meu navegador. No entanto, eu descobri que ... Eu tinha feito uma ^Zinstância angular existente que estava usando a porta padrão, bobo!
quietContest

1
Para verificar rapidamente qual pid está usando a porta 4200 no Windows, use netstat -a -n -o | findstr 4200
penta

186

Abra seu cmd.execomo administrator,

Encontre o PIDdeport 4200

netstat -ano | findstr :4200

Pid para a porta 4200

Aqui eu tenho 3 PID:

  • O vermelho é de "ng-serve" (127.0.0.1:4200) que LISTENING
  • O verde é do "seu navegador"

mate apenas a porta 4200 (mate o PID vermelho):

taskkill /PID 15940 /F

nota: matar o verde só fará com que seu navegador seja fechado à força.

taskkill pid 15940

agora você pode "ng-serve" para iniciar seu aplicativo angular na mesma porta 4200




Coisas adicionais:

Um liner: Depois de procurar uma maneira de otimizar isso, aqui está o comando One-liner desta resposta: (agradecimentos especiais a: Josep Alsina por estas dicas)

for /f "tokens=5" %a in ('netstat -ano ^| find "4200" ^| find "LISTENING"') do taskkill /f /pid %a

2
Lembre-se de fazê-lo cmd, não Git Bash.
Leo

2
Syntsax para GitBash no Windows netstat -ano | findstr: 4200; taskkill -PID <PestablishedPID> -F
intotecho

A atualização do GIt Bash corrige o meu problema
Ismail Farooq

90

No Mac OS X, você precisa do seguinte comando:

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

Lembre-se de que você precisa matar o servidor da Angular com Command + C.


Trabalhou no Ubuntu também.
Becario Sênior

2
comando + C é a chave para matar qualquer processo. Eu e outros desenvolvedores às pressas, pressione o comando + z, que apenas suspende o processo em vez de matá-lo.
Jasmeet 31/07/19

2
@jasmeet pressionando Command + Z também me pegou várias vezes!
Julian Fraser

26

Não ctrl + Z, você deve executar para parar ctrl + C


de longe a solução mais simples para o problema, mesmo que tecnicamente ele não responder à pergunta OP
Florian

@Flo Acho solução, porque a minha resposta corrige a razão, nem efeitos
Emir Mamashov

16

Use este comando para matar ng:

pkill -9 ng

3
eu usei no meu ubuntu 18.04. ele brilhou minha tela e me levou para ubuntu sessão matando todos os aplicativos
srv_sud

Isso mata todos os outros apps.But finalmente funciona para mim ..thanks
Sakthikanth

13

ng serve --port <YOUR_GIVEN_PORT_NUMBER>

Você deve tentar o comando acima para executar em sua porta especificada.


Funcionou bem no ubuntu 18.
Mark Odey

11

Quando você usa Ctrl+Z, suspenderá uma tarefa em execução, mas não a matará. Posteriormente, você pode usar o comando fgpara continuar a tarefa. Se você quiser sair ng serve, use-o Ctrl+Cno qual também liberará a porta 4200.


7

Agora você pode configurar --port 0para obter uma porta gratuita.

ng serve --port 0 // will get a free port for you

Nesse caso, não se esqueça de usar o --opensinalizador, caso contrário você não saberá em qual porta foi iniciada.
rplaurindo

1
Terminal me disse qual porta ele escolheu. Essa deve ser a resposta correta para os usuários do Windows.
Ron


6

Para Windows:

Prompt de Comando Aberto e

tipo: netstat -a -o -n

Encontre o PID do processo que você deseja matar.

Tipo: taskkill /F /PID 16876

Este 16876 - é o PID do processo que eu quero matar - nesse caso, o processo é 4200 - verifique o arquivo anexado. Você pode fornecer qualquer número de porta.

insira a descrição da imagem aqui

Agora, digite: ng servepara iniciar seu aplicativo angular na mesma porta 4200


5

Estou compartilhando isso, pois os dois comandos seguintes não fizeram o trabalho no meu mac:

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

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

O seguinte foi o caso, mas se você estivesse usando o terminal integrado no Visual Code, tente usar o terminal da máquina e adicione o comando fowling:

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

Obrigado, ele funciona para mim, todas as respostas acima não funcionam para mim, pois estou usando o terminal VScode no Ubuntu OS.
SURENDRANATH S 5/03

4
netstat -anp | grep ":4200"

Isso informará quem tem a porta.


é isso - anp? que nada retornou então eu só adicionei um espaço, porque o seu comando estava pedindo "nestat: opção requer um --P argumento"
peztherez

Sua netstat deve ser diferente da minha. Talvez adicione uma tag do sistema operacional.
Joshua

4
ng serve --port 4201 --live-reload-port 4200

e acessar usando localhost:4201

Isso deve funcionar como uma solução temporária.

ou

tente listar o uso da porta
lsof -i:4200
e matá-lo manualmente usando
sudo kill -9 <Process PID using port 4200>


4

Em resumo, há mais de uma solução: 1) Usando outra porta para definir o número da porta,

ng serve --open --port 4201

2) matando o processo

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

3) Tipo

netstat -a -n -o

no prompt de comando, localize a porta PID relacionada e mate-a

taskkill /F /PID (pid number)

4) Tipo netstat -ano|findstr :4200

tomou o PID do endereço estrangeiro que contém o número da porta e depois mata-o

taskkill /PID (pid number)/F


4

Para interromper toda a porta local em execução no Windows, use esse comentário simples sozinho, em vez de procurar pid separadamente usando netstat,

Ele encontra todo o pid e para a porta local que está atualmente em execução,

taskkill /im node.exe /f

útil para angular 4 em janelas :)
Icarus

3

Basta reiniciar o IDE que você está usando, para que ele funcione.


3

Com ctrl + z, você coloca o programa em segundo plano. No Linux, você pode recuperar a sessão em primeiro plano com o seguinte comando:

fg ng serve

Você não precisa matar o processo.



2

No meu caso, nenhuma das opções acima mencionadas funcionou.

UBUNTU 18.04 VERSÃO

Abaixo o comando funcionou.

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

2

Se você estiver usando o VSCode, terá a opção de eliminar o terminal e adicionar um novo terminal. Feche a guia e abra uma nova guia. Funcionou para mim.

Editado: use ctrl + ce pressione y. Sem matar o terminal também, você pode prosseguir. Se você deseja abrir uma nova instância do visual studio e executar um aplicativo diferente, pode usar o ng serve --port 4401.


2

Terminal VScode no Ubuntu OS use o seguinte comando para matar o processo

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

1

Você também pode tentar executar o aplicativo no código do visual studio -:

ng serve --open --port 4201

você pode dar qualquer número de porta.


1

Diz que já estamos executando os serviços com a porta no 4200, use outra porta em vez do 4200. O comando abaixo é para resolver o problema

ng servir --port 4300



1

Finalize o processo e feche o terminal que você usou para executar o aplicativo nessa porta.


1

Em vez de interromper o processo ou usar todo ctrl+z, você pode simplesmente usar ctrl+cpara parar o servidor e usar alegremente ng serve commandsem nenhum errorsou, se desejar executar em uma porta diferente, basta usar este comando ng serve --port portno(ex: ng serve --port 4201).


1

Para o Ubndu 18.04, sudo lsof -t -i tcp: 3000 | xargs kill -9

Isso acontece quando a porta foi encerrada sem êxito, portanto este comando a encerrará 4200 ou 3000 ou 3300


0

Também enfrentei o mesmo erro msg, então tentei ng serve --port 12012 e funcionou bem.


6
nós não podemos alot novo porto toda vez.
Shijin

10
Quem está votando respostas como estas?
shark1608

0

Se você estiver compilando seu código JS angular no CMD e no IDE, esse problema ocorrerá. No CMD, seu código JS angular é compilado automaticamente sempre que você altera seu código JS angular no IDE e, em seguida, seu IDE deseja ocupar a mesma porta, por exemplo, 4200, que já é ocupada pelo CMD. Portanto, existe uma solução simples para esse problema, basta fechar o seu cmd ao compilar seu código no IDE.


0

Eu estava enfrentando o mesmo problema toda vez que tenho que matar o porto.

Eu tentei em ./node_modules/.bin/ng serve --proxy-config proxy.conf.json --host 0.0.0.0vez de npm starte seus trabalhos

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.