tuer tcp port binding en supprimant proc / / net / … in linux

J'ai un script pour appeler syscall Tuez le process qui détient un certain port TCP sous Linux (ubuntu). Mais même si je le fais, parfois, le port rest dans le /proc/[0-9]/net lie le port.

Existe-t-il un moyen simple de forcer à libérer le port tcp? Je sais quel proc/X contient le port que je veux tuer. Puis-je supprimer le /proc/XXX/ et je considère que le port est libre d'utiliser après cette suppression?

Certaines publications indiquent que je peux utiliser le fuser , mais je veux savoir ce qui se passe au niveau du operating system.

Merci!

Le port rest lié car l'application appelante qui est obligatoire pour le port n'utilise pas l'option socket SO_REUSEADDR . Vous devez réparer l'application appelante pour le faire. En C:

 int yes = 1; setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (void *)&yes, sizeof(yes)); 

Cela s'efface dans l'application tuée après net.ipv4.tcp_fin_timeout secondes. La meilleure chose à faire est de réparer votre programme d'appel pour faire le bon choix.