Esta es la primera vez que trabajo con Node.js y me encontré con este problema:
He iniciado un servidor Node a través del complemento de un IDE. Desafortunadamente, no puedo usar la terminal del IDE. Así que intenté 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 comandos, 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 cuál podría ser este error, supuse 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 Node ya se inició cuando intenté iniciarlo desde el IDE.
Entonces, quiero saber, ¿cómo puedo detener todas las instancias del servidor? Además, si puede decirme cómo detectar lo que se está ejecutando en un puerto y matarlo.
Respuestas:
Máquina de Windows:
Necesita matar un servidor Node.js, y no tiene otros procesos Node ejecutándose, puede decirle a su máquina que mate todos los procesos nombrados
node.exe
. Eso se vería así:Y si los procesos aún persisten, puede forzar la finalización de los procesos agregando el
/f
indicador:Si necesita un control más detallado y solo necesita matar un servidor que se ejecuta en un puerto específico, puede usarlo
netstat
para encontrar la ID del proceso y luego enviarle una señal de cierre. Entonces, en su caso, donde está el puerto8080
, puede ejecutar lo siguiente:La quinta columna de la salida es la ID del proceso:
Entonces podrías matar el proceso con
taskkill /pid 14828
. Si el proceso se niega a salir, simplemente agregue el/f
parámetro (force) al comando.Máquina Linux:
El proceso es casi idéntico. Puede matar todos los procesos de Nodo que se ejecutan en la máquina (usar
-$SIGNAL
siSIGKILL
es insuficiente):O también usando
netstat
, puede encontrar el PID de un proceso escuchando en un puerto:La ID del proceso en este caso es el número antes del nombre del proceso en la sexta columna, que luego puede pasar al
kill
comando:Si el proceso se niega a salir, simplemente use la
-9
bandera, que es unaSIGTERM
y no se puede ignorar:fuente
process.exit()
en su aplicación hace que la instancia de NodeJS se cierre.killall node
en bash mataría todas las instancias de NodeJS que se ejecutan en su máquina.taskkill /IM node.exe
. Matará todos los procesos nombradosnode.exe
.La forma más rápida es
Funciona con Linux, OS X
fuente
node: no process found
Además, cuando busco los procesos de un nodo que se ejecutan en el puerto específico, el ID del proceso tiene en-
lugar de un número.Puede usar
lsof
obtener el proceso que se ha vinculado al puerto requerido.Lamentablemente, los indicadores parecen ser diferentes según el sistema, pero en Mac OS X puede ejecutar
Por ejemplo, en mi máquina obtengo algo como:
El segundo número es el PID y el puerto que están escuchando está a la derecha antes de "(ESCUCHAR)". Encuentra el PID falso y
kill -9 $PID
termina con prejuicios extremos.fuente
Terminal de Windows y GitBash Necesitaba usar este comando dentro del terminal de Windows / Webstorm / GitBash
fuente
si desea eliminar un proceso de nodo específico, puede ir a la ruta de la línea de comando y escribir:
para obtener una lista de todos los identificadores de proceso de nodo. ahora puede obtener su identificación de proceso (pid), luego haga:
y si desea eliminar todos los procesos de nodo, haga lo siguiente:
-9 interruptor es como finalizar la tarea en Windows. obligará a que finalice el proceso. tu puedes hacer:
para ver todos los interruptores del comando kill y sus comentarios.
fuente
Puedes probar esto:
fuente
Linux
Para impresionar a tus amigos
Pero este es el que recordarás
fuente
También puedes probar:
killall nodejs
fuente
Si está utilizando Windows, siga esto:
Abra el administrador de tareas, busque este proceso:
Luego haga clic derecho y "Finalizar tarea".
Eso es todo, ahora todos los comandos npm se ejecutan desde el inicio.
fuente
Multiplataforma, estable, la mejor solución:
use fkill para matar el proceso que está tomando su puerto:
Para instalar fkill use el comando: npm i -g fkill
fuente
puedes probar
también puedes probar
fuente
funciona bien en windows 10
fuente
Estoy usando el sistema operativo Windows.
Maté todo el proceso de nodo y reinicié la aplicación que funcionó.
tratar
fuente
Use el siguiente comando para matar y reiniciar el servidor de nodo desde el archivo por lotes
fuente
en el comando de Windows Escriba el comando golpe:
taskkill / f / im node.exe
fuente
Presione cmd o bash: Ctrl + C
fuente