2 votes

Comment puis-je libérer un port qui est toujours utilisé mais qui n'est pas lié à un processus ?

J'exécute une application Python qui génère plusieurs processus. Elle utilise le port 56008 pour écouter les demandes des clients. Parfois, après avoir fermé l'application, le port qu'elle utilisait est toujours "en service". Certains processus Python semblent toujours en cours d'exécution, mais j'essaie de les tuer à l'aide de la commande kill ne semble pas avoir d'effet.

Comment puis-je le libérer manuellement pour pouvoir redémarrer mon application ?

Plus d'informations :

Sortie de ps -C python

  PID TTY          TIME CMD
30118 pts/1    00:00:00 python
30131 pts/1    00:00:00 python

*Il y a environ 30 lignes au total du format [pid] pts/1 00:00:00 python

Sortie de netstat -tulp (ligne pertinente uniquement) :

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 *:56008                 *:*                     LISTEN      -

3voto

Xente Points 87

Cela a fait l'affaire

sudo kill -9 `ps -C python | grep python | grep -v grep | awk '{print $1}'`

0voto

cody osieczonek Points 21

Vous pouvez essayer de coder correctement la façon dont votre application se terminera (par exemple, tuer tous les enfants, fermer les sockets réseau).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X