Comment résilier Python fil sans checking en permanence

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()

J'ai donc thread comme montrer ci-dessus, en fait de travailler sur windows et process.sh est script bash qui courent dans cygwin, et prend environ 5 min pour terminer l'exécution de sorte que son pas une boucle de ses simulation proecess

je veux créer de la fonction stop() de cette classe, de sorte que je peux résilier le script immédiatement quand je veux. après la résiliation, je suis ne s'attend à aucun résultat utile de process.sh script

veuillez u peut suggérer une méthode, Si possible, veuillez donner quelques explications trop..

OriginalL'auteur Ganesh Gore | 2013-04-28