Bonjour,

J'en appele à vous pour un problème, qui me paraît étrange, relatif aux sockets.
Pour présenter l'environnement:
Mandriva Linux release 2009.0
Python 2.5.2
Nagios 3.0

Je crée un serveur UDP en python, et selon la requête qu'il va recevoir il va redémarrer le service Nagios de la machine.
Lorsque je tue/termine mon serveur, j'ai la surprise de voir que Nagios se met à squatter le port que j'utilisais alors qu'il ne l'utilise jamais.
Ca me fait le même problème avec d'autres services qui sont des daemons perl ou python.
Si je redémarre 2 services, mettons Nagios et un autre en python, lorsque j'arrête mon serveur, Nagios se met à "squatter le port" et si j'arrête Nagios c'est l'autre service qui se met à utiliser le port.

Je peux résumer ceci par les logs systèmes suivants:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
# ps axf
29718 ?        Ss     0:00 /usr/bin/python /home/dysen/monserveur.py
29942 ?        Ssl    0:00 /usr/bin/python /usr/lib/storeme/StoreMe.py
29958 ?        Ssl    0:00 nagios -d /etc/nagios/nagios.cfg
 
# netstat -taupen
tcp        0      0 0.0.0.0:50001               0.0.0.0:*                   LISTEN     
84         4258217    29942/python
udp        0      0 0.0.0.0:50001               0.0.0.0:*                               
84         4258220    29942/python
udp        0      0 0.0.0.0:50006               0.0.0.0:*                               0
         4257159    29718/python
 
# /etc/init.d/monserveur stop
# ps axf
29942 ?        Ssl    0:00 /usr/bin/python /usr/lib/storeme/StoreMe.py
29958 ?        Ssl    0:00 nagios -d /etc/nagios/nagios.cfg
 
 
# netstat -taupen
tcp        0      0 0.0.0.0:50001               0.0.0.0:*                   LISTEN     
84         4258217    29942/python
udp        0      0 0.0.0.0:50001               0.0.0.0:*                               
84         4258220    29942/python
udp        0      0 0.0.0.0:50006               0.0.0.0:*                               0
         4257159    29942/python
 
# /etc/init.d/storeme stop
# ps axf
29958 ?        Ssl    0:00 nagios -d /etc/nagios/nagios.cfg
 
# netstat -taupen
udp        0      0 0.0.0.0:50006               0.0.0.0:*                               0
         4257159    29958/nagios
Pour vous éviter la version super longue de mon programme, je vous reporte ici une version très courte mais qui reproduit exactement le même problème:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
#!/usr/bin/python
import os
import socket
 
addr = ("0.0.0.0", 50006)
udpsock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
buffersize = 65535
udpsock.bind(addr)
 
os.system("service nagios restart")
os.system("service storeme restart")
udpsock.close()
Si quelqu'un a une solution, merci!