Como dice el título, estoy corriendo múltiples servidores de juego, y cada uno de ellos tiene el mismo name
pero diferente PID
y el port
número. Me gustaría hacer coincidir el PID
del servidor que está escuchando en cierto puerto, y luego me gustaría matar este proceso. Lo necesito para completar mi script bash.
¿Es eso siquiera posible? Porque todavía no encontró ninguna solución en la web.
netstat: 80: unknown or uninstrumented protocol
usó el80
puerto (nginx) para probar propósitos. No funcionó.netstat -nlp | grep :80
lugarnetstat: option requires an argument -- p
netstat
se llama al nativo de Windows . Tiene otra sintaxis.Versión corta que puede pasar al comando kill:
fuente
lsof -i4TCP:80 -sTCP:LISTEN -t
es probablemente lo que quieres.kill -9 `lsof -i:80 -t`
para facilitar la copianetstat -p -l | grep $PORT
y laslsof -i :$PORT
soluciones son buenas, pero prefiero lafuser $PORT/tcp
sintaxis de extensión a POSIX (que funciona paracoreutils
) como con la tubería:imprime pid puro para que puedas dejar la
sed
magia.Una cosa que hace que
fuser
mis herramientas favoritas es la capacidad de enviar señales a ese proceso directamente (esta sintaxis también es una extensión de POSIX):También -k es compatible con FreeBSD: http://www.freebsd.org/cgi/man.cgi?query=fuser
fuente
netstat -nlp
debería decirle el PID de lo que está escuchando en qué puerto.fuente
netstat: 80: unknown or uninstrumented protocol
usó el80
puerto (nginx) para probar propósitos. No funcionó.Como sockstat no se instaló de forma nativa en mi máquina, pirateé la respuesta de stanwise para usar netstat en su lugar.
fuente
Quería programar , usando solo Bash, matar el proceso de escucha en un puerto determinado.
Digamos que el puerto es 8089, entonces así es como lo hice:
¡Espero que esto ayude a alguien más! Sé que ayudará a mi equipo.
fuente
function kill-listener { lsof -i:$1 -t | xargs kill -9 }
Usando su ejemplo del puerto 8089:kill-listener 8089
Sintaxis:
Ejemplo: para detener el proceso que se ejecuta en el puerto 4200, ejecute el siguiente comando
Probado en Ubuntu.
fuente
en Windows, la opción netstat para obtener el pid es -o y -p selecciona un filtro de protocolo, por ejemplo: netstat -a -p tcp -o
fuente