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 ..

questionAnswers(2)

yourAnswerToTheQuestion