Убить бегущий процесс

У меня есть код ниже, который запускает несколько приложений командной строки. Если я затем пытаюсь убить процесс, иногда он работает, иногда нет, и процесс продолжает выполняться. Я просто хотел проверить, является ли то, что я делаю, правильным, предпочтительным методом? Я работаю на Windows 7 и Windows Server 2012, Python 2.7.11, все 64-разрядные.

startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
environ1 = os.environ.copy()
environ1['FFREPORT'] = 'level=32:file={}'.format(ffmpeglogFilePath)
self.ffmpeglogFilePath1 = ffmpeglogFilePath
self.process1a = Popen(command1, stdout=PIPE, startupinfo=startupinfo)
self.process1b = Popen(command2, stdin=self.process1a.stdout, startupinfo=startupinfo, env=environ1)


def killProcess1(self, running_pane1):
    startupinfo = subprocess.STARTUPINFO()
    startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
    Popen("TASKKILL /F /PID {pid} /T".format(pid=self.process1a.pid), startupinfo=startupinfo)
    Popen("TASKKILL /F /PID {pid} /T".format(pid=self.process1b.pid), startupinfo=startupinfo)

0 ответов

Другие вопросы по тегам