En dmon, je comprends pas trop comment __del__ est appel. Ca
marchera trs bien comme a aussi. darcs-hash:20051109103552-d1718-8a5c2f45288fd293ae911d1dba371ea786add9bd.gz
This commit is contained in:
parent
552d7673e5
commit
bda07d81b6
1 changed files with 16 additions and 10 deletions
|
@ -22,20 +22,14 @@ class Server:
|
|||
Il écoutera sur le pipe nommé `socket'."""
|
||||
# syslog
|
||||
openlog("hotspot.py", LOG_PERROR | LOG_PID)
|
||||
syslog(LOG_INFO | LOG_LOCAL4, "Demarrage du demon hotspot")
|
||||
# Initialisation de la socket
|
||||
self._socket_name = socket
|
||||
self._dontclean = False
|
||||
os.mkfifo(socket, 0600)
|
||||
self.socket = file(socket, "a+")
|
||||
|
||||
def __del__(self):
|
||||
try:
|
||||
self.socket.close()
|
||||
os.unlink(socket)
|
||||
except:
|
||||
pass
|
||||
if not self._dontclean:
|
||||
os.unlink(self._socket_name)
|
||||
os.mkfifo(socket, 0600)
|
||||
self.socket = file(socket, "a+")
|
||||
|
||||
def execute(self,cmd):
|
||||
"""Exécute une commande.
|
||||
|
@ -119,6 +113,7 @@ class Server:
|
|||
|
||||
def start(self):
|
||||
"""Boucle principale"""
|
||||
syslog(LOG_INFO | LOG_LOCAL4, "Demarrage du demon hotspot")
|
||||
s = self.socket.fileno()
|
||||
while True:
|
||||
# On attend du monde sur la socket
|
||||
|
@ -134,5 +129,16 @@ class Server:
|
|||
if __name__ == "__main__":
|
||||
s = Server("/tmp/hotspot.socket")
|
||||
s.daemonize()
|
||||
s.start()
|
||||
while True:
|
||||
try:
|
||||
s.start()
|
||||
except:
|
||||
import traceback
|
||||
from cStringIO import StringIO
|
||||
s = StringIO()
|
||||
sys.stderr = s
|
||||
traceback.print_exc()
|
||||
sys.stderr = sys.__stderr__
|
||||
syslog(LOG_CRIT | LOG_LOCAL4, "Erreur importante :\n%s" % s.getvalue())
|
||||
time.sleep(60) # Pour ne pas flooder...
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue