En utilisant BASH, comment puis-je tuer le port TCP 16969?

J’ai une application qui utilise le port TCP 16969. Elle nécessite parfois un redémarrage rapide du kernel du logiciel. Mais si je le lance trop vite, alors je suis verrouillé avec Exception in thread "main" java.net.BindException: Address already in use .

Donc, sans aucune excuse, je veux déclencher mon script BASH qui peut tuer n’importe quel port en cours d’exécution ou d’écoute avec 16969. Mais comment puis-je le faire?

 $ lsof -w -n -i tcp:16969 # this gives me a list of 50 lines but how can i tell apply kill to all on this port? 

Je pense que:

 lsof -i tcp:22 | grep LISTEN | awk '{print $2}' | xargs kill 

Devrait faire le tour.

Pour vérifier les commandes qu’il veut exécuter avant de le lâcher, ajoutez un echo avant le kill comme ceci:

 lsof -i tcp:22 | grep LISTEN | awk '{print $2}' | xargs echo kill 

Il listera alors les PID qu’il tuerait normalement

Avez-vous essayé d’utiliser tcpkill?

Exemple:

 tcpkill -i eth0 port 21 

fuser -k 16969 / tcp

peut libérer ce port. Ceci est une commande utile qui peut être utilisée pour fermer des ports. quel que soit ce qu’il est. Cordialement

J’ai souvent ce problème en utilisant JBoss dans Netbeans …

Ma solution:

Dans un type de terminal:

  sudo netstat -lnp | grep 8080 

Ensuite, il affiche quelque chose comme:

  tcp6 0 0 :::8080 :::* LISTEN 1722/java 

Ensuite, utilisez:

  kill 1722 //replace 1722 by the PID you found. 

J’espère que ça va aider!