El puerto queda ocupado al presionar CTRL + C desde la terminal linux con aplicaciones Nodejs

publicado por: Anonymous

Tengo el siguiente problema, vez que tengo que programar en nodejs al momento de ejecutar la aplicación nodejs desde consola (node app.js) queda un puerto ocupado (ejemplo puerto:3000).. al momento de cerrar la app (Ctrl + C) … el puerto sigue ocupado y al volver a ejecutar el nodejs me arroja error Error: listen EADDRINUSE porque dice que ya existe una aplicación que utiliza dicho puerto.

Al cerrar no cierra de manera correcta y queda abierto el puerto, lo que hago es buscar el id de la app y matar el puerto con el comando kill pero eso quita demasiadas horas al momento de realizar un deploy

¿Existe otra forma de cerrar (de manera segura) una app en nodejs?

solución

Tal vez presionas ctrl + z. Revisa bien y utiliza esto para limpiar antiguos procesos de node.

ps aux | awk '/node/{print$2}' | xargs kill -9

En tu codigo puedes usar algo como :

process.on('SIGHUP', () => {
  console.log('SIGHUP');
});

process.kill(process.pid,'SIGHUP')

Revisa la documentacion de node para poder ver todas las señales y eventos que puede manejar process.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *