2009-04-15 31 views

Respuesta

7

Elimina el proceso que está escuchando el puerto en cuestión. Creo que netstat muestra que procesas identificadores.

+3

-anp -an | grep la última columna tiene el proceso – user1747935

0

Creo que la única forma será detener el proceso que ha abierto el puerto.

9

El comando "netstat --programs" le dará la información del proceso, suponiendo que es root. Entonces tendrás que matar el proceso "ofensivo" que bien puede comenzar de nuevo solo para molestarte :-).

¿Qué estás tratando de lograr aquí? Las soluciones variarán en función de los procesos que tengan esos puertos.

160

Como han dicho los demás, tendrá que eliminar todos los procesos que están escuchando en ese puerto. La forma más fácil de hacerlo sería usar el comando fuser (1). Por ejemplo, para ver todos los procesos de escucha para las solicitudes HTTP en el puerto 80 (ejecutar como root o usando sudo):

# fuser 80/tcp 

Si quiere matarlos, a continuación, sólo tiene que añadir la opción -k.

+1

me encontré con que el envío de una solicitud al puerto también lo limpia (i no soy un experto en linux) –

+1

Para instalar fuser en Debian: sudo apt-get install psmisc (http://bitflop.com/document/107) – Korneel

+1

Funcionó, pero también tuve que instalar psmisc en CentOs 7 ('sudo yum instalar psmisc') –

2

Si realmente quiere matar un proceso inmediatamente, le envía una señal KILL en lugar de una señal TERM (esta última es una solicitud para detener, la primera tendrá efecto inmediatamente sin ninguna limpieza). Es fácil de hacer:

kill -KILL <pid> 

Tenga en cuenta sin embargo que, dependiendo del programa que se está parando, su estado puede quedar gravemente dañado antes de hacerlo. Normalmente, solo desea enviar una señal KILL cuando la terminación normal no funciona. Me pregunto cuál es el problema subyacente que intentas resolver y si matar es la solución correcta.

-4

sudo killall -9 "nombre del proceso"

-12

Apagar el ordenador siempre mata el proceso para mí.

+0

apagar una máquina servidor es rar mi. – waqas

+13

¿Recibiste tu insignia "más divertida"? – jplandrain

+0

No hay necesidad de apagar su computadora. –

12

Puede utilizar tcpkill (parte del paquete dsniff) para matar a la conexión que hay en el puerto que necesita:

sudo tcpkill -9 port PORT_NUMBER 
+0

Este es el único método que funcionó para mí. – brousch

+5

esto simplemente cuelga '$ sudo tcpkill -9 puerto 5432 tcpkill: escuchando en lxcbr0 [puerto 5432]' – Anentropic

40

para matar un puerto específico en Linux utilizar a continuación comando

sudo fuser -k Port_Number/tcp 

reemplaza Port_Number con tu puerto ocupado.

+1

Esto realmente mata el proceso que abrió el puerto y no el puerto en sí. – vinayc

3

En el tipo de terminal:

netstat -anp|grep "port_number"

Se mostrará los detalles del puerto. Ir a la última columna Será en este formato.Por ejemplo: - PID/java

luego ejecutar:

kill -9 PID. Worked on Centos5

+0

obviamente esto no funciona si la columna PID está vacía para ese puerto – Anentropic

+1

... y eso sucede si no tienes permiso para ver el proceso ... prueba 'sudo netstat' para ver realmente los PIDs :) – Anentropic

+0

no funciona en mac –