Como terminar o thread do Python sem marcar o sinalizador continuamente
class My_Thread(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
def run(self):
print "Starting " + self.name
cmd = [ "bash", 'process.sh']
p = subprocess.Popen(cmd,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
for line in iter(p.stdout.readline, b''):
print ("-- " + line.rstrip())
print "Exiting " + self.name
def stop(self):
print "Trying to stop thread "
self.run = False
thr = My_Thread()
thr.start()
time.sleep(30)
thr.stop()
thr.join()
Então eu tenho segmento como mostrar acima, realmente funciona no windows e process.sh é bash script que é executado em cygwin e leva cerca de 5 min para terminar a execução para que não seja um loop seu algum proence de simulação
Eu quero criar função stop () nesta classe para que eu possa terminar o script imediatamente quando eu quiser. após o término eu não estou esperando qualquer resultado útil do script process.sh
por favor pode sugerir qualquer método, se possível por favor dê pouca explicação também ..