Encuentre (y elimine) el proceso de bloqueo del puerto 3000 en Mac [cerrado]

Resuelto oma asked hace 14 años • 40 respuestas

¿Cómo encuentro (y elimino) procesos que escuchan/utilizan mis puertos TCP? Estoy en macOS.

A veces, después de un bloqueo o algún error, mi aplicación Rails bloquea el puerto 3000. No puedo encontrarlo usando ps -ef...

al correr

rails server

yo obtengo

Address already in use - bind(2) (Errno::EADDRINUSE)

El mismo problema ocurre al detener el proceso de Node.js. Incluso después de que se detiene el proceso y la aplicación deja de ejecutarse, el puerto 3000está bloqueado. Al iniciar la aplicación nuevamente, obtener

Address already in use (Errno::EADDRINUSE)
oma avatar Oct 04 '10 19:10 oma
Aceptado
  1. Puedes probarnetstat

    netstat -vanp tcp | grep 3000
    
  2. Para macOS El Capitan y versiones posteriores (o si su netstat no es compatible -p), uselsof

    lsof -i tcp:3000
    
ghostdog74 avatar Oct 04 '2010 12:10 ghostdog74

Encontrar:

sudo lsof -i :3000

Matar:

kill -9 <PID>

TENGA EN CUENTA: -9 finaliza el proceso inmediatamente y no le da ninguna posibilidad de limpiarse. Esto puede causar problemas. Considere usar -15(TERM) o -3(QUIT) para una terminación más suave que permita que el proceso se limpie por sí solo.

Filip Spiridonov avatar Sep 09 '2013 20:09 Filip Spiridonov

Solución rápida y sencilla :

kill -9 $(lsof -ti:3000)

Para múltiples puertos:

kill -9 $(lsof -ti:3000,3001)

#3000 es el puerto a liberar

Elimine varios puertos con un comando de una sola línea:

kill -9 $(lsof -ti:3000,3001)

#Aquí varios puertos 3000 y 3001 son los puertos que se liberarán

lsof -ti:3000

Si el puerto está ocupado, el comando anterior devolverá algo como esto: 82500 (ID de proceso)

lsof -ti:3001

82499

lsof -ti:3001,3000

82499 82500

matar -9 $(lsof -ti:3001,3000)

Finaliza los procesos 82499 y 82500 con un solo comando.

Para usar esto en package.jsonscripts:

"scripts": {
   "start": "kill -9 $(lsof -ti:3000,3001) && npm start"
}

En la terminal puedes usar:

npm run start
Abhijith Sasikumar avatar Mar 12 '2019 07:03 Abhijith Sasikumar