Ce qui précède killall -9 node
, suggéré par Patrick fonctionne comme prévu et résout le problème, mais vous voudrez peut-être lire la partie d'édition de cette réponse pour savoir pourquoi ce kill -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):
lsof -i tcp:8888
Cela retournera quelque chose comme:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 57385 You 11u IPv6 0xac745b2749fd2be3 0t0 TCP *:ddi-tcp-1 (LISTEN)
Ensuite, faites (ps - en fait pas . Continuez à lire ci-dessous):
kill -9 57385
Vous pouvez en lire un peu plus ici .
EDIT: Je lisais sur un sujet assez connexe aujourd'hui et suis tombé sur ce fil intéressant sur pourquoi devrais-je pas kill -9
un processus .
En règle générale, vous devez utiliser kill -15 avant kill -9 pour donner au processus cible une chance de se nettoyer après lui-même. (Les processus ne peuvent pas attraper ou ignorer SIGKILL, mais ils peuvent et attrapent souvent SIGTERM.) Si vous ne donnez pas au processus une chance de terminer ce qu'il fait et de nettoyer, il peut laisser des fichiers corrompus (ou un autre état) autour qu'il ne pourra pas comprendre une fois redémarré.
Donc, comme indiqué, vous devriez mieux tuer le processus ci-dessus avec:
kill -15 57385
EDIT 2 : Comme indiqué dans un commentaire ici à plusieurs reprises, cette erreur est la conséquence de ne pas quitter un processus avec élégance. Cela signifie, beaucoup de gens quitter une commande de noeud (ou tout autre) en utilisant CTRL + Z . La façon correcte d'arrêter un processus en cours d'exécution est d'émettre la commande CTRL + C qui effectue une sortie propre.
Quitter un processus de la bonne façon libérera ce port pendant la fermeture. Cela vous permettra de redémarrer le processus sans passer par le problème de le tuer vous-même avant de pouvoir le relancer.