6 votos

Linux: Matar proceso en un puerto específico

¿Cómo matar un proceso si se conoce su puerto? Por ejemplo, si un proceso está en ejecución en el puerto 12345, ¿cómo se puede terminar en linux/ubuntu?

11voto

rayman Puntos 1949

Puedes usar

sudo netstat -tupln

para mostrar qué está escuchando en qué puerto. Deberías ver algo similar a esto (he simplificado un poco la salida).

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      2472/apache2

Esa cuarta columna (0.0.0.0:80 en mi ejemplo) te mostrará el número de puerto (80 aquí) y la última columna (2472/apache2) te mostrará el PID (2472).

Luego puedes enviar el comando

sudo kill -15 PID

donde PID es el PID que encontramos con el comando anterior. Esto enviará SIGTERM al proceso. Si falla, es posible que necesites

sudo kill -9 PID

pero generalmente es una forma menos amigable de matar un proceso. Para más información, deberías consultar

man kill

0 votos

He estado buscando una solución sencilla. Esto es. Debería ser aceptado. Gracias por la excelente respuesta.

1voto

HD84335 Puntos 1
  1. enumerar todos los puertos de escucha:

    netstat -antu

  2. tome el correspondiente, digamos 80 y termínelo usando esto:

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

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X