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スクリプトからの有用な結果は期待できません
任意の方法を提案してください。可能であれば、少し説明もお願いします..