servidor produccion nodejs node error eaddrinuse node.js windows-7

node.js - produccion - cómo liberar localhost de Error: escucha EADDRINUSE



node.js servidor web (19)

Estoy probando un servidor escrito en nodejs en Windows 7 y cuando trato de ejecutar el probador en la línea de comando obtengo el siguiente error

Error: listen EADDRINUSE at errnoException (net.js:614:11) at Array.0 (net.js:704:26) at EventEmitter._tickCallback (node.js:192:40)

¿Cómo puedo solucionarlo sin reiniciar?


Correr:

ps -ax | grep node

Obtendrás algo como:

60778 ?? 0:00.62 /usr/local/bin/node abc.js

Entonces hazlo:

kill -9 60778


Creé 2 servidores, escuchando en el mismo puerto 8081, ejecutando desde el mismo código, mientras aprendía

La creación del primer servidor ha funcionado. La creación del segundo servidor ha fallado con EADDRINUSE.

Los retrasos de devolución de llamada de node.js pueden ser motivos que no funcionó, o que la creación del segundo servidor tuvo una excepción y el programa salió, por lo que el primer servidor también está cerrado.

2 sugerencia de problema del servidor, obtuve de: Cómo solucionar el error: escuchar EADDRINUSE mientras usa nodejs?


Cuando aparece un error Error: escucha EADDRINUSE,

Intenta ejecutar los siguientes comandos de shell:

netstat -a -o | grep 8080 taskkill /F /PID 6204

He grep para 8080, porque sé que mi servidor se está ejecutando en el puerto 8080. ( static me dice cuando lo inicio: ''serving''. "En http://127.0.0.1:8080 ''). Puede que tenga que buscar un puerto diferente.


Cuando recibes un error

Error: escucha EADDRINUSE

Abra el símbolo del sistema y escriba las siguientes instrucciones:

netstat -a -o | grep 8080 taskkill /F /PID** <*ur Process ID no*>

después de eso, reinicie la interfaz de brecha telefónica.

Si desea saber qué proceso está usando la función phone fap, abra TASK MANAGER y observe el PID del encabezado de columna y encuentre el no. PID.


El siguiente comando le dará una lista de los procesos de nodo en ejecución.

ps | grep node

Para liberar ese puerto, detenga el proceso usando lo siguiente.

kill <processId>


En Linux (derivados de Ubuntu al menos)

killall node

es más fácil que esta forma.

ps | grep <something> kill <somepid>

Ninguno funcionará si tiene un niño huérfano sosteniendo el puerto. En cambio, haz esto:

netstat -punta | grep <port>

Si el puerto está siendo retenido verás algo como esto:

tcp 0 0.0.0.0:<port> 0.0.0.* LISTEN <pid>/<parent>

Ahora mata por pid:

kill -9 <pid>


En la ventana, ejecuta este comando:

taskkill /F /PID 1952


Error: escuche EADDRINUSE para resolverlo en Ubuntu ejecute en la terminal netstat -nptl y después de esto kill -9 {process-number} este comando es para matar el proceso del nodo y ahora puede intentar ejecutar nuevamente el comando node server.js

Ex

escucha EADDRINUSE ::: 8080

netstat -nptl

tcp6 0 0 ::: 9000 ::: * LISTEN 9660 / java
tcp6 0 0 ::: 5800 ::: * ESCUCHAR -
tcp6 0 0 ::: 5900 ::: * ESCUCHAR -
tcp6 0 0 ::: 8080 ::: * ESCUCHAR 10401 / nodo
tcp6 0 0 ::: 20080 ::: * LISTEN 9660 / java
tcp6 0 0 ::: 80 ::: * ESCUCHAR -
tcp6 0 0 ::: 22 ::: * ESCUCHAR -
tcp6 0 0 ::: 10137 ::: * LISTEN 9660 / java

matar -9 10401


Es posible que hayas intentado ejecutar el comando npm start en dos pestañas diferentes. No puedes ejecutar npm start cuando ya se está ejecutando en alguna pestaña. Comprueba una vez.


Está recibiendo el error EADDRINUSE porque el puerto, que su aplicación desea usar, está ocupado por otro proceso. Para liberar este puerto, debe finalizar el proceso de ocupación.

Como está en Windows , puede finalizar el proceso utilizando el símbolo del sistema ( cmd ). Con el cmd puede descubrir el ID de proceso (PID) de la aplicación de bloqueo. Necesitará el PID para terminar / matar el proceso.

Aquí hay una guía paso a paso ...

  1. Encuentre todos los procesos que se ejecutan en un puerto específico (en este ejemplo, Puerto es "3000"):

    netstat -ano | encontrar ": 3000"

  2. El comando netstat mostrará una lista de todos los procesos que se ejecutan en el puerto especificado. En la última columna de los resultados de netstat , puede ver los PID (en este ejemplo, PID es "8308"). Puede obtener más información sobre un PID específico ejecutando el siguiente comando:

    lista de tareas / fi "pid eq 8308"

  3. Si desea finalizar un proceso, puede hacerlo con el siguiente comando utilizando su PID (en este ejemplo, PID es "8308"):

    taskkill / pid 8308 / f

Captura de pantalla


Para cualquiera que haya probado todo lo anterior, pero aún no puede encontrar el proceso de rouge, pruébelos nuevamente, pero asegúrese de incluir "sudo" delante de los comandos.


Si le gusta más la interfaz de usuario, busque el proceso Node.js en el administrador de tareas de Windows y elimínelo.


Significa que la dirección a la que intenta vincular el servidor está en uso. Pruebe con otro puerto o cierre el programa utilizando ese puerto.


Tengo el nodo rojo instalado en mi Mac y mi Raspberry Pi. Tenía exactamente el mismo problema y hacer ''killall'' no ayudó. Una vez que apagué la Raspberry Pi y reinicié mi computadora, funcionó bien.


Una posible solución que funcionó para mí fue simplemente cerrar la ventana en el navegador donde tenía el script " http://localhost:3000/ " en ejecución.


ps -ef | grep node find app.js, kill pid de app.js


puedes cambiar tu puerto en app.js o en tu archivo de configuración del proyecto.

predeterminado (''puerto'', 80)

y para ver si el puerto 80 ya está en uso, puedes hacer

netstat -antp | grep 80

netstat -antp | nodo grep

es posible que desee ver si el proceso de nodo ya se está ejecutando o no.

nodo ps -ef | grep

y si encuentra que ya se está ejecutando, puede matarlo usando

nodo killall


supongamos que su servidor se está ejecutando en el port 3000

lsof -i tcp:3000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME node 11716 arun 11u IPv6 159175 0t0 TCP *:3000 (LISTEN)

después de eso use kill -9 <pid>

en el caso anterior, sudo kill -9 11716


use el comando below para matar un proceso que se ejecuta en un puerto determinado - 3000 en este ejemplo a continuación

kill -9 $(lsof -t -i:3000)