tutorial node instalar how examples example demos javascript windows node.js express port

javascript - instalar - node js express tutorial



detener todas las instancias del servidor node.js (9)

Esta es la primera vez que trabajo con Node.js y me encontré con este problema:

Empecé un servidor de nodo a través del complemento de un IDE. Lamentablemente, no puedo usar la terminal IDE. Así que traté de ejecutar el script desde la línea de comando.

Este es el problema: estoy usando el módulo Express y mi aplicación está escuchando algún puerto (8080). Cuando inicio la aplicación desde la línea de comando, arroja este error:

events.js:71 throw arguments[1]; // Unhandled ''error'' event ^ Error: listen EADDRINUSE at errnoException (net.js:770:11) at HTTPServer.Server._listen2 (net.js:910:14) at listen (net.js:937:10) at HTTPServer.Server.listen (net.js:986:5) at Object.<anonymous> (C:/xampp/htdocs/node/chat/app.js:5:5) at Module._compile (module.js:449:26) at Object.Module._extensions..js (module.js:467:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.runMain (module.js:492:10)

Aunque no estoy muy seguro de qué podría ser este error, asumí que es porque la aplicación está escuchando en un puerto que ya está en uso. Así que lo hice:

netstat -an

puedo ver

TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING

Es porque el servidor Nodo ya está iniciado cuando intenté arrancarlo desde el IDE.

Entonces quiero saber, ¿cómo puedo detener todas las instancias del servidor? También si puedes decirme cómo detectar lo que se está ejecutando en un puerto y matarlo.


Máquina de Windows:

Necesitas matar a un servidor Node.js, y no tienes ningún otro proceso Node ejecutándose, puedes decirle a tu máquina que mate todos los procesos llamados node.exe . Eso se vería así:

taskkill /im node.exe

Y si los procesos aún persisten, puede forzar a los procesos a terminar agregando el indicador /f :

taskkill /f /im node.exe

Si necesita un control más detallado y necesita matar solo un servidor que se está ejecutando en un puerto específico, puede usar netstat para encontrar el ID del proceso y luego enviarle una señal de cancelación. Entonces, en su caso, donde el puerto es 8080 , podría ejecutar lo siguiente:

C:/>netstat -ano | find "LISTENING" | find "8080"

La quinta columna de la salida es la ID del proceso:

TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 14828 TCP [::]:8080 [::]:0 LISTENING 14828

A continuación, puede matar el proceso con taskkill /pid 14828 . Si el proceso se niega a salir, simplemente agregue el parámetro /f (force) al comando.

Máquina Linux:

El proceso es casi idéntico. Puede eliminar todos los procesos de Nodo que se ejecutan en la máquina (use -$SIGNAL si SIGKILL es insuficiente):

killall node

O también usando netstat , puede encontrar el PID de un proceso que escucha en un puerto:

$ netstat -nlp | grep :8080 tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 1073/node

El ID del proceso en este caso es el número anterior al nombre del proceso en la sexta columna, que luego puede pasar al comando kill :

$ kill 1073

Si el proceso se niega a salir, simplemente use la bandera -9 , que es un SIGTERM y no se puede ignorar:

$ kill -9 1073


Estoy usando el sistema operativo Windows.

Maté todo el proceso del nodo y reinicié la aplicación que funcionó.

tratar

taskkill /im node.exe


La forma más rápida es

killall node

Funciona con Linux, OS X


Presione en cmd o bash: Ctrl + C


Puede usar lsof obtener el proceso que se ha vinculado al puerto requerido.

Desafortunadamente las banderas parecen ser diferentes dependiendo del sistema, pero en Mac OS X puedes ejecutar

lsof -Pi | grep LISTEN

Por ejemplo, en mi máquina consigo algo como:

mongod 8662 jacob 6u IPv4 0x17ceae4e0970fbe9 0t0 TCP localhost:27017 (LISTEN) mongod 8662 jacob 7u IPv4 0x17ceae4e0f9c24b1 0t0 TCP localhost:28017 (LISTEN) memcached 8680 jacob 17u IPv4 0x17ceae4e0971f7d1 0t0 TCP *:11211 (LISTEN) memcached 8680 jacob 18u IPv6 0x17ceae4e0bdf6479 0t0 TCP *:11211 (LISTEN) mysqld 9394 jacob 10u IPv4 0x17ceae4e080c4001 0t0 TCP *:3306 (LISTEN) redis-ser 75429 jacob 4u IPv4 0x17ceae4e1ba8ea59 0t0 TCP localhost:6379 (LISTEN)

El segundo número es el PID y el puerto que están escuchando está a la derecha antes de "(ESCUCHAR)". Encuentra el PID deshonesto y kill -9 $PID para terminar con prejuicio extremo.


Puedes intentar esto:

taskkill /IM node.exe -F


También puedes probar:

killall nodejs


si quieres eliminar un proceso específico, puedes ir a la ruta de línea de comando:

ps aux | grep node

para obtener la identificación del proceso y luego hacer:

kill -9 PID

y si quieres matar a todos los procesos, hazlo:

killall -9 node


Windows & GitBash Terminal I necesitaba usar este comando dentro de la terminal de Windows / Webstorm / GitBash

cmd "/C TASKKILL /IM node.exe /F"