ver usando saber que puertos puerto para ocupado hat esta especifico como comando aplicacion abiertos unix port freebsd pid

unix - usando - ver puertos abiertos red hat



Determine el proceso pid escuchando en un puerto determinado (7)

Como dice el título, estoy ejecutando múltiples servidores de juego, y cada uno de ellos tiene el mismo name pero diferente PID y el número de port . Me gustaría hacer coincidir el PID del servidor que está escuchando en cierto puerto, y luego me gustaría matar a este proceso. Lo necesito para completar mi script bash.

¿Es eso posible? Porque no encontró ninguna solución en la web.


Como sockstat no estaba instalado de forma nativa en mi máquina, corté la respuesta de Stanford para usar netstat en su lugar.

netstat -nlp | grep -E "[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}/:2000" | awk ''{print $7}'' | sed -e "s///.*//g""


El -p de netstat le proporciona el PID del proceso:

netstat -l -p

Editar: El comando que se necesita para obtener los PID de los usuarios de socket en FreeBSD es sockstat . Como trabajamos durante la discusión con @Cyclone, la línea que hace el trabajo es:

sockstat -4 -l | grep :80 | awk ''{print $3}'' | head -1


Quería programar , usando solo Bash, matar el proceso de escucha en un puerto determinado.

Digamos que el puerto es 8089, y así es como lo hice:

badPid=$(netstat --listening --program --numeric --tcp | grep "::8089" | awk ''{print $7}'' | awk -F/ ''{print $1}'' | head -1) kill -9 $badPid

¡Espero que esto ayude a alguien más! Sé que va a ayudar a mi equipo.


Versión corta que puede pasar para matar el comando:

lsof -i:80 -t


en Windows, la opción netstat para obtener el pid''s es -o y -p selecciona un filtro de protocolo, ej .: netstat -a -p tcp -o


netstat -nlp debería decirle el PID de lo que está escuchando en qué puerto.


netstat -p -l | grep $PORT netstat -p -l | grep $PORT y lsof -i :$PORT soluciones lsof -i :$PORT son buenas, pero prefiero la sintaxis de la extensión fuser $PORT/tcp a POSIX (que funciona para coreutils ) como con pipe:

pid=`fuser $PORT/tcp`

imprime pid puro para que puedas eliminar la magia sed .

Una cosa que hace que fuser my lover tools sea la capacidad de enviar señales a ese proceso directamente (esta sintaxis también es una extensión de POSIX):

$ fuser -k $port/tcp # with SIGKILL $ fuser -k -15 $port/tcp # with SIGTERM $ fuser -k -TERM $port/tcp # with SIGTERM

También -k es compatible con FreeBSD: http://www.freebsd.org/cgi/man.cgi?query=fuser