def kill(self, gently=True):
# avoid running kill before start is finished
self.startsem.acquire()
self.startsem.release()
self.outt.killed = True
self.errt.killed = True
if wx.Platform == '__WXMSW__':
PROCESS_TERMINATE = 1
handle = ctypes.windll.kernel32.OpenProcess(PROCESS_TERMINATE, False, self.Proc.pid)
ctypes.windll.kernel32.TerminateProcess(handle, -1)
ctypes.windll.kernel32.CloseHandle(handle)
else:
if gently:
sig = SIGTERM
else:
sig = SIGKILL
try:
os.kill(self.Proc.pid, sig)
except Exception:
pass
self.outt.join()
self.errt.join()
评论列表
文章目录