"La porta 4200 è già in uso" quando si esegue il comando ng serve


179

Sto imparando angular 2 e per la prima volta sto usando il progetto CLI angolare per creare un progetto sandbox.

Sono stato in grado di eseguire il comando "ng serve" e funziona benissimo. Volevo interromperne l'esecuzione, quindi ho eseguito "Control Z".

Quando ho provato a eseguire nuovamente il comando "ng-serve", mi viene visualizzato "La porta 4200 è già in uso".

Ho eseguito "PS" per ottenere un elenco del PID e ho ucciso il PID per l'angular-cli e ho eseguito di nuovo "ng-serve", dando comunque lo stesso errore di porta in uso.


Uno sviluppatore di Windows per tutta la vita Ho trascorso gli ultimi mesi su un Mac e mi sono allenato ad usare CMD + Z. Ho iniziato a
riscontrare

Se stai lavorando su Visual Studio Code, chiudilo e riavvialo.
Kurkula,

Risposte:


323

Questo è quello che ho usato per uccidere i progressi sulla porta 4200

Per utenti Linux:

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

Puoi anche provare questo:

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

Per gli utenti di Windows:

Il numero di porta 4200 è già in uso. Apri il cmd come amministratore. Digita sotto il comando in cmd:

netstat -a -n -o

E poi, trova la porta con il numero di porta 4200 facendo clic con il tasto destro del mouse sul terminale e fai clic su trova, inserisci 4200 in "trova cosa" e fai clic su "trova successivo": Supponiamo che tu abbia trovato che il numero di porta 4200 è utilizzato da pid 18932. Digita il comando seguente in cmd:

taskkill -f /pid 18932

Per UNIX:

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

Ora esegui ngf (invece di ng serve ) nel terminale dalla cartella del progetto. Questo ucciderà tutti i processi usando la porta 4200 ed eseguirà il tuo progetto angolare.


3
Mentre mi rendo conto che questa è la soluzione corretta, questa non sembra essere una soluzione orribile? E se volessi correre ng servesu una directory diversa? Non ha senso uccidere il server in questo modo e quindi riavviarlo da qualche altra parte o mi sto perdendo qualcosa?
Nathan Dunn,

6
È possibile specificare una porta diversa con: --port <new_port>
estellezg

4
Questo uccide il browser predefinito. E non utile.
shijin,

7
questo ha ucciso la finestra del mio browser. Alla fine l'ho capito però ... Avevo fatto un caso ^Zsu un'istanza angolare esistente che utilizzava la porta predefinita, sciocco me!
quietContest

1
Per verificare rapidamente quale pid sta utilizzando la porta 4200 in Windows, utilizzare netstat -a -n -o | findstr 4200
penta,

186

Apri il tuo cmd.execome administrator,

poi trovare il PIDdiport 4200

netstat -ano | findstr :4200

Pid per la porta 4200

Qui ho 3 PID:

  • Quello rosso è da "ng-serve" (127.0.0.1:4200) che LISTENING
  • Quello verde viene dal "tuo browser"

kill only port 4200 (kill the PID rosso):

taskkill /PID 15940 /F

nota: uccidere quello verde farà chiudere forzatamente il browser.

taskkill pid 15940

ora puoi fare "ng-serve" per avviare la tua app angolare sulla stessa porta 4200




Cose aggiuntive:

One liner: dopo aver cercato un modo per ottimizzare questo, ecco il comando One-liner di questa risposta: (ringraziamenti speciali a: Josep Alsina per questi suggerimenti)

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

2
Ricordati di farlo dentro cmd, no Git Bash.
Leone,

2
Syntsax per GitBash su Windows netstat -ano | findstr: 4200; taskkill -PID <establishedPID> -F
intotecho

L'aggiornamento di GIt Bash risolve il mio problema
Ismail Farooq

90

Su Mac OS X è necessario il seguente comando:

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

Ricorda che devi uccidere il web server di Angular con Command + C.


Ha funzionato anche in Ubuntu.
Becario Senior,

2
comando + C è la chiave per terminare qualsiasi processo. Io e gli altri sviluppatori in fretta premiamo command + z, che sospende il processo invece di ucciderlo.
Jasmeet,

2
@jasmeet premendo Command + Z mi è arrivato anche un numero di volte!
Julian Fraser,

26

Non ctrl + Z, devi eseguire stop ctrl + C


di gran lunga la soluzione più semplice al problema, anche se tecnicamente non risponde alla domanda del PO
Florian,

@Flo Penso a una soluzione, perché la mia risposta corregge il motivo, non gli effetti
Emir Mamashov,

16

Usa questo comando per uccidere ng:

pkill -9 ng

3
l'ho usato sul mio Ubuntu 18.04. mi ha fatto lampeggiare lo schermo e mi ha portato ad accedere a Ubuntu uccidendo tutte le app
srv_sud

Questo uccide tutte le altre app, ma alla fine funziona per me ... grazie
Sakthikanth,

13

ng serve --port <YOUR_GIVEN_PORT_NUMBER>

Dovresti provare sopra il comando per eseguire sulla tua porta specificata.


Ha funzionato bene su Ubuntu 18.
Mark Odey,

11

Quando lo usi Ctrl+Z, sospendi un'attività in esecuzione ma non la uccidi. È possibile in seguito utilizzare il comando fgper riprendere l'attività. Se vuoi uscire ng serve, dovresti usare Ctrl+Cinvece, in cui rilascerà anche la porta 4200.


7

In questo momento puoi impostare --port 0per ottenere una porta libera.

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

In questo caso non dimenticare di usare la --openbandiera, altrimenti non saprai in quale porta è stata avviata.
rplaurindo,

1
Terminal mi ha detto quale porta ha scelto. Questa dovrebbe essere la risposta corretta a mani basse per gli utenti Windows.
Ron,

6

Possiamo uccidere forzatamente la porta seguendo il comando.

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

6

Per Windows:

Apri il prompt dei comandi e

genere: netstat -a -o -n

Trova il PID del processo che vuoi uccidere.

Genere: taskkill /F /PID 16876

Questo 16876 - è il PID per il processo che voglio uccidere - in tal caso, il processo è 4200 - controlla il file allegato.Puoi fornire qualsiasi numero di porta.

inserisci qui la descrizione dell'immagine

Ora, digita: ng serveper avviare la tua app angolare sulla stessa porta 4200


5

Sto condividendo questo dato che i due comandi tremolanti non hanno fatto il lavoro sul mio mac:

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

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

Lo ha fatto quello seguente, ma se si utilizzava il terminale integrato in Visual Code, provare a utilizzare il terminale della macchina e aggiungere il comando di Fowling:

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

Grazie funziona per me, tutta la risposta sopra non funziona per me come sto usando il terminale VScode nel sistema operativo Ubuntu.
SURENDRANATH S

4
netstat -anp | grep ":4200"

Questo ti dirà chi ha il porto.


è - anp? che non ha restituito nulla, quindi ho appena aggiunto uno spazio perché il tuo comando chiedeva "nestat: opzione richiede un argomento --p"
peztherez,

Il tuo netstat deve essere diverso dal mio. Forse aggiungi un tag OS.
Giosuè,

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

e accedi usando localhost:4201

Questo dovrebbe funzionare come una soluzione temporanea.

o

prova a elencare l'utilizzo delle porte usando
lsof -i:4200
e uccidilo manualmente usando
sudo kill -9 <Process PID using port 4200>


4

In breve, esistono più soluzioni: 1) Utilizzando un'altra porta per definire il numero di porta,

ng serve --open --port 4201

2) uccidendo il processo

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

3) Digitare

netstat -a -n -o

nel prompt dei comandi quindi trovare il PID della porta correlato e ucciderlo

taskkill /F /PID (pid number)

4) Digitare netstat -ano|findstr :4200

ha preso il PID dell'indirizzo esterno che contiene il numero di porta e quindi lo ha ucciso

taskkill /PID (pid number)/F


4

Per interrompere l'esecuzione di tutte le porte locali in Windows, utilizza questo semplice commento da solo invece di cercare pid separatamente usando netstat,

Trova tutto il pid e ferma la porta locale che è attualmente in esecuzione,

taskkill /im node.exe /f

utile per Angular 4 in Windows :)
Icaro

3

Basta riavviare l'IDE che si sta utilizzando, quindi funzionerà.


3

Con ctrl + z metti il ​​programma in background. Su Linux puoi riportare la sessione in primo piano con il seguente comando:

fg ng serve

Non è necessario interrompere il processo.



2

Nel mio caso nessuno dei suddetti ha funzionato.

VERSIONE UBUNTU 18.04

Di seguito il comando ha funzionato.

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

2

Se si utilizza VSCode, è possibile eliminare il terminale e aggiungere un nuovo terminale. Chiudi la scheda e apri una nuova scheda. Ha funzionato per me.

Modificato: utilizzare ctrl + c e premere y. Anche senza il terminale di uccisione, puoi procedere. Se si desidera aprire una nuova istanza di Visual Studio ed eseguire un'applicazione diversa, è possibile utilizzare ng serve --port 4401.


2

Il terminale VScode nel sistema operativo Ubuntu usa il seguente comando per terminare il processo

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

1

Puoi anche provare con questo per eseguire l'applicazione nel codice di Visual Studio -:

ng serve --open --port 4201

puoi dare qualsiasi numero di porta.


1

Dice che stiamo già eseguendo i servizi con la porta n. 4200, utilizzare un'altra porta anziché 4200. Il comando seguente è per risolvere il problema

Servizio --port 4300



1

Termina il processo e chiudi il terminale che hai usato per eseguire l'app su quella porta.


1

Invece di interrompere l'intero processo o utilizzare ctrl+z, puoi semplicemente utilizzare ctrl+cper arrestare il server e puoi utilizzarlo felicemente ng serve commandsenza alcuno errorso se vuoi eseguire su una porta diversa semplicemente usa questo comando ng serve --port portno(ex: ng serve --port 4201).


1

Per Ubndu 18.04 sudo lsof -t -i tcp: 3000 | xargs uccide -9

Succede quando la porta è stata terminata senza successo, quindi questo comando la terminerà 4200 o 3000 o 3300 qualsiasi


0

Ho anche riscontrato lo stesso messaggio di errore, quindi ho provato a servire --port 12012 e ha funzionato bene.


6
non possiamo avere molte nuove porte ogni volta.
shijin,

10
Chi sta votando risposte come queste?
Shark1608,

0

Se si compila il codice JS angolare in CMD e IDE, si verifica questo problema. In CMD, il tuo codice JS angolare si compila automaticamente ogni volta che cambi il tuo codice JS angolare in IDE e quindi il tuo IDE desidera occupare la stessa porta, ad esempio 4200 che è già occupata da CMD Quindi, c'è una soluzione semplice per questo problema, basta chiudere il tuo cmd durante la compilazione del codice in IDE.


0

Stavo affrontando lo stesso problema ogni volta che devo uccidere il porto.

Ho provato ./node_modules/.bin/ng serve --proxy-config proxy.conf.json --host 0.0.0.0invece di npm starte le sue opere

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.