J'ai un petit problème que je n'arrive pas à résoudre :
mon prog possede 2 threads, le principal qui fait du traitement et un qui attend des commandes sur l'entrée standard. Le programme doit se terminer sur un SIGINT ou SIGTERM.
Or si mon thread principal se termine correctement mon 2ème continue tranquillement son travail ! Comment le terminer ?
Voici un petit code d'exemple :
#!/usr/bin/env python
import threading,sys,time,signal
class input(threading.Thread):
def __init__(self,input):
threading.Thread.__init__(self)
self.input = input
def run(self):
while 1:
line = self.input.readline().rstrip('\n')
if not line: break
print line
def doStuff():
while 1:
print "je fais qqchose"
time.sleep(10)
def exit(signum,frame):
print "exiting (%d) ..."%(signum)
sys.exit(signum)
if __name__=="__main__":
signal.signal(signal.SIGTERM, exit)
signal.signal(signal.SIGINT, exit)
background = input(sys.stdin)
background.start()
doStuff()
D'avance merci
# daemon thread
Posté par dabe . Évalué à 3.
[^] # Re: daemon thread
Posté par jjl (site web personnel) . Évalué à 1.
J'avais pas compris les threads démons comme ca.
Merci
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.