So beenden Sie den Python-Thread, ohne das Flag ständig zu überprüfen
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()
Also habe ich Thread wie oben gezeigt, arbeite tatsächlich an Windows und process.sh ist ein Bash-Skript, das in Cygwin ausgeführt wird und ungefähr 5 Minuten benötigt, um die Ausführung zu beenden
Ich möchte die stop () - Funktion in dieser Klasse erstellen, damit ich das Skript sofort beenden kann, wenn ich möchte. Nach Beendigung erwarte ich kein nützliches Ergebnis von process.sh Skript
Bitte können Sie eine Methode vorschlagen. Wenn möglich, geben Sie auch eine kleine Erklärung.