Posible duplicado:
encontrar el proceso que utiliza un puerto determinado en Linux
Estoy usando Ubuntu Linux 11.04. ¿Cómo escribo una expresión de script de shell que encontrará el proceso ejecutándose en el puerto 4444 y luego matará el proceso?
Posible duplicado:
encontrar el proceso que utiliza un puerto determinado en Linux
Estoy usando Ubuntu Linux 11.04. ¿Cómo escribo una expresión de script de shell que encontrará el proceso ejecutándose en el puerto 4444 y luego matará el proceso?
Respuestas:
Podrías usar lsof
para encontrar el proceso:
lsof -t -i:4444
enumeraría solo el pid del proceso escuchando en el puerto 4444. Simplemente podría decir
kill `lsof -t -i:4444`
si fueras valiente
Usted usa lsof
:
# lsof -n | grep TCP | grep LISTEN | grep 4444
La salida será algo así como:
pname 16125 user 28u IPv6 4835296 TCP *:4444 (LISTEN)
Donde la primera columna es el nombre del proceso, y la segunda columna es la identificación del proceso. Luego analiza el resultado, descubre cuál es la identificación del proceso (PID) y usa el kill
comando para eliminarlo.
Alternativamente, puede usar netstat -ap
si lsof
no está disponible en su sistema (ya que no está en un sistema busybox con el que trabajo regularmente).
kill -9 `netstat -lanp --protocol=inet | grep 4444 | awk -F" " '{print $7}' | awk -F"/" '{print $1}'`
Utiliza netstat para enumerar los sockets INET de escucha con puertos numéricos y procesos primarios. Filtra la cadena 4444, saca la séptima columna (pid / nombre del proceso) y la divide por "/" para obtener el pid. Pasa eso para matar el comando.