Script de Linux para matar el process de escucha en un puerto en particular

Tengo un process que escucha en un puerto del TCP (? 0003). De vez en cuando se bloquea – mal. Deja de funcionar, pero sigue acaparando el puerto durante algún time, así que ni siquiera puedo reiniciarlo. Estoy buscando para automatizar esto.

Lo que hago ahora es:

netstat -ntlp |grep -P "\*\:\d0003" 

Para ver lo que es el PID y luego:

 kill -9 <pid> 

¿Alguien tiene un script (o EXE para el caso) que enlazaría los dos pasos juntos, es decir. analizar el PID desde el primer command y pasarlo al segundo?

6 Solutions collect form web for “Script de Linux para matar el process de escucha en un puerto en particular”

También puedes hacerlo de esa manera:

 kill -9 $( lsof -i:?0003 -t ) 
 kill $(netstat -ntpl 2>/dev/null | egrep "^tcp .*:[0-9]0003"|awk '{print $7}'|cut -d / -f 1 ) 

Usted puede kill -9 lugar de pensar que el -9 es necesario. Redirecciono el netstat stderr porque omite un post cuando se ejecuta como no-raíz que no es importante para este propósito. Incluyo tcp en el regex para filtrar tcp6.

hay una línea para ti

 netstat -ntlp | awk '$4~/:*0003$/{gsub(/\/.*/,"",$NF);cmd="kill -9 "$NF;system(cmd)}' 

Supongo que el command python es sólo el primer término en el command completo, ¿verdad? Si tienes el nombre del script que se está ejecutando puedes mirar algo como pgrep -f

Si está seguro de la singularidad, también puede usar el pkill -f relacionado pkill -f

¿Qué pasa con killall <command> hay más de uno de estos processs?

Si eso no funciona pruebe:

 PID=`netstat -ntlp |grep -P "\*\:\d0003"`; kill -9 $PID 

Eso debería hacer el truco.

Tal vez el command del fusor con las opciones -k y -n puede ayudar. Diga "man fuser" para más información.

  • Cómo pasar alias a través de sudo
  • Cómo sincronizar las llamadas de commands en Linux
  • Cómo cambiar el nombre de files múltiples mediante la sustitución de la palabra en el nombre de file?
  • mismo entorno de shell en todas las counts
  • Manera fácil de conseguir la dirección del IP del hostname usando un shell de Unix
  • ¿Por qué el comando shell se ejecuta desde la línea de comandos pero no desde el script php?
  • SSH sin invocar shell
  • Escribir script de shell que sólo puede ser ejecutado por un usuario de sudo en Ubuntu
  • ¿Cómo replace un bloque NGINX integer con sed?
  • No se puede ejecutar AWS CLI desde CRON (cnetworkingenciales)
  • ¿No es seguro tener un nombre de usuario común o fácil para un server SSH?
  • Linux: Cómo build un solo command con parameters dependiendo del range de time actual
  • Elegir una sola línea de un file de text por su número de línea
  • El linux y los temas del servidor de Windows, como ubuntu, centos, apache, nginx, debian y consejos de red.