280 votes

"Le port 4200 est déjà utilisé" lors de l'exécution de la commande ng serve

J'apprends angular 2 et pour la première fois j'utilise le projet angular CLI pour créer un projet sandbox.

J'ai pu exécuter la commande "ng serve" et cela fonctionne très bien. Je voulais l'empêcher de fonctionner, alors j'ai exécuté "Control Z".

Quand j'ai essayé de relancer la commande "ng-serve", le message "Le port 4200 est déjà utilisé" est apparu.

J'ai lancé "PS" pour obtenir une liste des PID et j'ai tué le PID de l'angular-cli et j'ai relancé "ng-serve" qui donne toujours la même erreur de port utilisé.

1 votes

Développeur Windows de longue date, j'ai passé ces derniers mois sur un Mac et je me suis entraîné à utiliser CMD + Z. J'ai commencé à rencontrer ce problème sous Windows, car j'utilisais par défaut CTRL + Z au lieu de CTRL + C.

2 votes

Si vous travaillez sur Visual Studio Code, fermez-le et redémarrez-le.

0 votes

Vous pouvez tuer le processus en cours d'exécution dans ce port en vérifiant les commandes nécessaires pour le système d'exploitation que vous utilisez ou vous pouvez exécuter le projet dans un autre port :)

484voto

Bart Hoekstra Points 38

C'est ce que j'ai utilisé pour tuer la progression sur le port 4200.

Pour les utilisateurs de linux :

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

Vous pouvez aussi essayer ceci :

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

Pour les utilisateurs de Windows :

Le numéro de port 4200 est déjà utilisé. Ouvrez le cmd en tant qu'administrateur. Tapez la commande ci-dessous dans cmd :

netstat -a -n -o

Ensuite, trouvez le port avec le numéro de port 4200 en faisant un clic droit sur le terminal et en cliquant sur "find", entrez 4200 dans "find what" et cliquez sur "find next" : Disons que vous avez trouvé que le port numéro 4200 est utilisé par le pid 18932. Tapez la commande suivante dans cmd :

taskkill -f /pid 18932

Pour UNIX :

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

Exécutez maintenant ngf (au lieu de ng servir ) dans le terminal à partir du dossier du projet. Cela va tuer tous les processus utilisant le port 4200 et lancer votre projet Angular.

3 votes

Même si je me rends compte que c'est la bonne solution, n'est-ce pas une solution horrible ? Et si je veux exécuter ng serve dans un autre répertoire ? Cela n'a pas de sens de tuer le serveur de cette façon et de le redémarrer ailleurs ou est-ce que j'ai raté quelque chose ?

6 votes

Vous pouvez spécifier un port différent avec : --port <new_port>

4 votes

Cela tue le navigateur par défaut. Et pas utile.

234voto

Anthony Kal Points 1289

Ouvrez votre cmd.exe comme administrator ,

puis trouver le PID de port 4200

netstat -ano | findstr :4200

Pid for port 4200

Ici, j'ai 3 PID :

  • La rouge provient de "ng-serve" (127.0.0.1:4200) qui LISTENING
  • Le vert provient de "votre navigateur".

tuer uniquement le port 4200 (tuer le PID rouge) :

taskkill /PID 15940 /F

note : tuer le vert ne fera que fermer votre navigateur de force.

taskkill pid 15940

maintenant vous pouvez faire "ng-serve" pour démarrer votre application angulaire au même port 4200




Éléments supplémentaires :

Une doublure : Après avoir cherché un moyen d'optimiser cela, voici la commande One-liner de cette réponse : (merci à : Josep Alsina pour ces conseils)

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

3 votes

N'oubliez pas de le faire en cmd pas Git Bash .

2 votes

Syntsaxe pour GitBash sur Windows netstat -ano | findstr :4200 ; taskkill -PID <establishedPID> -F

0 votes

La mise à jour de GIt Bash règle mon problème

121voto

Julian Fraser Points 620

Sous Mac OS X, vous devez utiliser la commande suivante :

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

Rappelez-vous que vous devez tuer le serveur web d'Angular avec Command+C.

0 votes

Cela a aussi fonctionné dans Ubuntu.

3 votes

Commande + C est la clé pour tuer n'importe quel processus. Moi-même et d'autres développeurs dans la précipitation appuient sur command+z, qui ne fait que suspendre le processus au lieu de le tuer.

2 votes

@jasmeet appuyer sur Command+Z m'a permis d'obtenir un certain nombre de fois aussi !

35voto

Emir Mamashov Points 231

Pas ctrl+Z, vous devez exécuter pour arrêter ctrl+C

2 votes

De loin la solution la plus simple au problème, même si techniquement elle ne répond pas à la question du PO

2 votes

C'est la réponse la plus pertinente à la question

25voto

Lolita Points 81

Utilisez cette commande pour tuer ng :

pkill -9 ng

7 votes

Je l'ai utilisé sur mon ubuntu 18.04. Il a fait clignoter mon écran et m'a amené au login ubuntu en supprimant toutes les applications.

0 votes

Cela tue toutes les autres applications, mais cela fonctionne enfin pour moi Merci.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X