ver usando usa saber que puertos puerto proceso para monitorear liberar esta especifico como comando archivo aplicacion abiertos linux bash sockets kill

linux - usando - netstat puerto especifico



script de shell para matar el proceso de escucha en el puerto 3000? (6)

Otra opción para usar el comando original lsof :

lsof -n -i:3000 | grep LISTEN | awk ''{ print $2 }'' | uniq | xargs kill -9

Si desea utilizar esto en un script de shell, puede agregar el -r a xargs para manejar el caso en el que no hay ningún proceso de escucha:

... | xargs -r kill -9

Esta pregunta ya tiene una respuesta aquí:

Quiero definir un alias de bash llamado kill3000 para automatizar la siguiente tarea:

$ lsof -i:3000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME ruby 13402 zero 4u IPv4 2847851 0t0 TCP *:3000 (LISTEN) $ kill -9 13402


Prueba esto:

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

El distintivo -t es lo que desea: muestra PID y nada más.

ACTUALIZAR

En caso de que no se encuentre el proceso y no desee ver el mensaje de error:

kill -9 $(lsof -i:3000 -t) 2> /dev/null

Asumiendo que estás ejecutando Bash.

ACTUALIZAR

La sugerencia de Basile es excelente: primero deberíamos tratar de terminar el proceso normalmente matará a -TERM , si falla, luego matará -KILL (AKA kill -9 ):

pid=$(lsof -i:3000 -t); kill -TERM $pid || kill -KILL $pid

Es posible que desee hacer de esto una función bash.


Qué tal si

alias kill3000="lsof -i:3000 | grep LISTEN | awk ''{print $2}'' | xargs kill -9"


fuser -k 3000/tcp también debería funcionar


alias kill3000="fuser -k -n tcp 3000"


fuser -n tcp 3000

Producirá la producción de

3000/tcp: <$pid>

Entonces podrías hacer:

fuser -n tcp 3000 | awk ''{ print $2 }'' | xargs -r kill