Cómo terminar el hilo de Python sin verificar la bandera 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()

Por lo tanto, tengo un hilo como el que se muestra arriba, realmente trabajo en windows y process.sh es un script bash que se ejecuta en cygwin y toma alrededor de 5 minutos para finalizar la ejecución, por lo que no es un bucle es algo de simulación.

Quiero crear la función stop () en esta clase para poder terminar el script inmediatamente cuando lo desee. después de la terminación no espero ningún resultado útil de la secuencia de comandos process.sh

por favor, puede sugerir cualquier método, si es posible, por favor dé una pequeña explicación también

Respuestas a la pregunta(2)

Su respuesta a la pregunta