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:
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
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
Si quelqu'un a une solution, merci!
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()
Partager