Je teste un serveur écrit en nodejs sur Windows 7 et lorsque j'essaye d'exécuter le testeur dans la ligne de commande, j'obtiens l'erreur suivante
Error: listen EADDRINUSE
at errnoException (net.js:614:11)
at Array.0 (net.js:704:26)
at EventEmitter._tickCallback (node.js:192:40)
comment puis-je le réparer sans redémarrer?
sudo killall node
peut être pratiqueRéponses:
Cela signifie que l'adresse à laquelle vous essayez de lier le serveur est en cours d'utilisation. Essayez un autre port ou fermez le programme en utilisant ce port.
la source
node app.js
et arrêté avec Ctrl + C, mais j'ai commencé à avoir le problème EADDRINUSE après la première utilisationnpm start
, il semble donc que la vraie solution serait d'utiliser autre chose que Ctrl + C pour arrêter après utilisationnpm start
.npm start
script peut être plus d'un programme de nœud, ou un programme de nœud exécuté en arrière-plan, ou le programme peut avoir des processus enfants qui utilisent ce port.ps aux | grep node
, j'ai trouvé l'identifiant du processus (deuxième colonne) et je l'ai simplement tué aveckill <pid>
(le mien étaitkill 18762
).Courir:
Vous obtiendrez quelque chose comme:
Alors fais:
la source
kill -15 60778
serait beaucoup mieux car cela permettrait au processus de seSIGTERM
SIGKILL
Sous Linux (au moins les dérivés d'Ubuntu)
est plus facile que ce formulaire.
Ni l'un ni l'autre ne fonctionnera si vous avez un enfant orphelin qui détient le port. Faites plutôt ceci:
Si le port est maintenu, vous verrez quelque chose comme ceci:
Maintenant, tuez par pid:
la source
<pid>/<parent>
j'attends-
La commande suivante vous donnera une liste des processus de nœud en cours d'exécution.
Pour libérer ce port, arrêtez le processus en utilisant ce qui suit.
la source
| grep -v grep
pour exclure legrep
processus.pidof node
pidof
a été facilement installé pour moi sur osx avec homebrewbrew install pidof
Vous obtenez l'erreur
EADDRINUSE
car le port que votre application souhaite utiliser est occupé par un autre processus. Pour libérer ce port, vous devez mettre fin au processus d'occupation.Puisque vous êtes sous Windows , vous pouvez terminer le processus à l'aide de l'invite de commande (
cmd
). Avec le,cmd
vous pouvez découvrir l'ID de processus (PID) de l'application de blocage. Vous aurez besoin du PID pour terminer / tuer le processus.Voici un guide étape par étape ...
Recherchez tous les processus qui s'exécutent sur un port spécifié (dans cet exemple, le port est "3000"):
La
netstat
commande listera tous les processus en cours d'exécution sur le port spécifié. Dans la dernière colonne desnetstat
résultats, vous pouvez voir lePID
s (dans cet exemple, le PID est "8308"). Vous pouvez en savoir plus sur un spécifiquePID
en exécutant la commande suivante:Si vous souhaitez terminer un processus, vous pouvez le faire avec la commande suivante en utilisant son
PID
(dans cet exemple, le PID est "8308"):Capture d'écran
la source
Lorsque vous obtenez une erreur Erreur: écoutez EADDRINUSE,
Essayez d'exécuter les commandes shell suivantes:
J'ai
grep
édité pour 8080, car je sais que mon serveur fonctionne sur le port 8080. (static
me dit quand je le lance: 'servant "." À http://127.0.0.1:8080 '.) Vous devrez peut-être rechercher un autre Port.la source
supposons que votre serveur fonctionne sur
port 3000
après cette utilisation
kill -9 <pid>
dans le cas ci-dessus
sudo kill -9 11716
la source
utilisez la commande ci-dessous pour tuer un processus en cours d'exécution sur un certain port - 3000 dans cet exemple ci-dessous
la source
Une solution possible qui a fonctionné pour moi était simplement de fermer la fenêtre dans le navigateur où j'avais le script correspondant " http: // localhost: 3000 / " en cours d'exécution.
la source
Vérifiez l'ID de processus
sudo lsof -i: 8081
Que de tuer le processus particulier
sudo tuer -9 2925
la source
Lorsque vous obtenez une erreur
Ouvrez l'invite de commande et tapez les instructions suivantes:
après cela, redémarrez l'interface d'écart de téléphone.
Si vous voulez savoir quel processus ID phonegap utilise, ouvrez TASK MANAGER et regardez l'en-tête de colonne PID et trouvez le PID no.
la source
Le
killall -9
nœud susmentionné , suggéré par Patrick, fonctionne comme prévu et résout le problème, mais vous voudrez peut-être lire la partie édition de cette réponse même pour savoir pourquoi cekill -9
n'est peut-être pas la meilleure façon de le faire.En plus de cela, vous voudrez peut-être cibler un seul processus plutôt que de tuer aveuglément tous les processus actifs.
Dans ce cas, obtenez d'abord l'ID de processus (PID) du processus en cours d'exécution sur ce port (disons 8888):
Cela renverra quelque chose comme:
(ÉCOUTER) Alors faites simplement (ps - en fait pas. Veuillez continuer à lire ci-dessous):
la source
Cela fonctionne sur Mac:
Étape 1.
La commande ci-dessus vous donnera le ou les identifiants de processus contenant actuellement le port.
Étape 2.
la source
vous pouvez changer votre port dans app.js ou dans le fichier de configuration de votre projet.
par défaut ('port', 80)
et pour voir si le port 80 est déjà utilisé, vous pouvez faire
netstat -antp | grep 80
netstat -antp | noeud grep
vous voudrez peut-être voir si le processus de nœud est déjà en cours d'exécution ou non.
ps -ef | noeud grep
et si vous trouvez qu'il fonctionne déjà, vous pouvez le tuer en utilisant
nœud killall
la source
J'ai créé 2 serveurs, écoutant sur le même port 8081, fonctionnant à partir du même code, tout en apprenant
La première création de serveur a fonctionné La deuxième création de serveur a échoué avec EADDRINUSE
Les retards de rappel de node.js peuvent être une raison pour laquelle aucun n'a fonctionné, ou la création du 2ème serveur a eu une exception, et le programme s'est arrêté, donc le 1er serveur est également fermé
2 indice de problème de serveur, j'ai obtenu de: Comment réparer l'erreur: écouter EADDRINUSE lors de l'utilisation de nodejs?
la source
Erreur: écoutez EADDRINUSE pour le résoudre dans Ubuntu, exécutez dans le terminal
netstat -nptl
et après cela,kill -9 {process-number}
cette commande consiste à tuer le processus de nœud et vous pouvez maintenant essayer d'exécuter à nouveau la commande node server.jsEx
écoute EADDRINUSE ::: 8080
netstat -nptl
tcp6 0 0 ::: 9000 ::: * ÉCOUTER 9660 / java
tcp6 0 0 ::: 5800 ::: * ÉCOUTER -
tcp6 0 0 ::: 5900 ::: * ÉCOUTER -
tcp6 0 0 ::: 8080 :: : * LISTEN 10401 / node
tcp6 0 0 ::: 20080 ::: * LISTEN 9660 / java
tcp6 0 0 ::: 80 ::: *
LISTEN - tcp6 0 0 ::: 22 ::: *
LISTEN - tcp6 0 0 ::: 10137 ::: * ÉCOUTER 9660 / java
tuer -9 10401
la source
netstat
reçoit différents paramètres.netstat -a -p tcp -b -v
affichera le nom du processus.J'ai le nœud rouge installé sur mon Mac et mon Raspberry Pi. J'ai eu exactement le même problème et faire «killall» n'a pas aidé. Une fois que j'ai arrêté le Raspberry Pi et redémarré mon ordinateur, cela a bien fonctionné.
la source
Il est possible que vous ayez essayé d'exécuter la commande npm start dans deux onglets différents. Vous ne pouvez pas exécuter npm start alors qu'il est déjà en cours d'exécution dans un onglet, vérifiez-le une fois.
la source
Pour tous ceux qui ont essayé tout ce qui précède, mais qui ne trouvent toujours pas le processus rouge, essayez-les tous à nouveau mais assurez-vous d'inclure "sudo" devant les commandes.
la source
Si vous aimez davantage l'interface utilisateur, recherchez le processus Node.js dans le gestionnaire de tâches Windows et tuez-le.
la source
ps -ef | noeud grep trouver app.js, tuer le pid de app.js
la source
il suffit de tuer le nœud en tant que nœud pkill -9 dans le terminal d'ubantu que de démarrer le nœud
la source
Vous devrez tuer le port en essayant d'utiliser la commande suivante sur le terminal
la source
[RÉSOLU]
Il est peut-être trop tard mais cela fonctionne comme un charme.
Vous devez
pm2
être installéPour arrêter le serveur en cours d'exécution (server.js):
la source
J'ai résolu ce problème en ajoutant ci-dessous dans mon package.json pour tuer le PORT actif - 4000 (dans mon cas) fonctionnant sur WSL2 / Linux / Mac
La source
la source
Pour tuer le serveur de nœuds, exécutez d'abord cette commande dans votre terminal:
top
id
de la fenêtre précédente:PID number -9 kill
vous avez donc tué votre serveur de nœuds, essayez à nouveau d'exécuter votre application.la source
J'ai utilisé la commande
netstat -ano | grep "portnumber"
afin de lister le numéro de port / PID pour ce processus. Ensuite, vous pouvez utilisertaskkill -f //pid 111111
pour tuer le processus, la dernière valeur étant le pid que vous trouvez à partir de la première commande.Un problème que je rencontre parfois est la réapparition du nœud même après avoir tué le processus, je dois donc utiliser le bon vieux gestionnaire de tâches pour tuer manuellement le processus du nœud.
la source
Dans la fenêtre, veuillez exécuter cette commande:
la source