Cómo encontrar el proceso que está escuchando en un puerto
Es posible que en muchas ocasiones queramos matar un proceso que está escuchando en un determinado puerto. Para conocer el proceso en cuestión podemos utilizar la herramienta lsof.
Si no tenemos instalada esta magnifica herramienta lo único que tendremos que hecer es descargarnosla e instalarla, simplemente utilizar algún gestor de paquetes como apt-get:
root@server:~# apt-get install lsof |
Una vez que tenemos instalado el paquete anterior, ahora podremos conocer que procesos se encuentran escuchando en un determinado puerto.
Para conocer el nombre del proceso, el ID (pid), y otros detalles tendremos que ejecutar el siguiente comando:
lsof -i :port |
Si por ejemplo queremos saber que proceso se encuentra escuchando en el puerto 80, tendriamos que ejecutar el siguiente comando:
root@server~# lsof -i :80 |
lo que nos dará la siguiente salida:
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME apache2 5859 www-data 3u IPv4 21745101 TCP *:www (LISTEN) apache2 5969 www-data 3u IPv4 21745101 TCP *:www (LISTEN) apache2 5993 www-data 3u IPv4 21745101 TCP *:www (LISTEN) apache2 6012 www-data 3u IPv4 21745101 TCP *:www (LISTEN) apache2 6013 www-data 3u IPv4 21745101 TCP *:www (LISTEN) apache2 6015 www-data 3u IPv4 21745101 TCP *:www (LISTEN) apache2 6030 www-data 3u IPv4 21745101 TCP *:www (LISTEN) apache2 6031 www-data 3u IPv4 21745101 TCP *:www (LISTEN) |
Con esta información podremos saber que en el puerto 80 están corriendo los anteriores procesos de apache, ejecutados como www-data. Con el PID ya podríamos si quisieramos cargarnos los procesos para que el puerto 80 se liberase.