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()
所以我有上面显示的线程,实际上在windows上工作,process.sh是在cygwin中运行的bash脚本,大约需要5分钟才能完成执行,所以它不是一个循环,它是一些模拟过程
我想在这个类中创建 stop() 函数,以便我可以在需要时立即终止脚本。终止后,我不希望 process.sh 脚本有任何有用的结果
请你能建议任何方法,如果可能的话,也请给出一点解释..