Мой компьютер работает на синем экране (KERNEL_SECURITY_CHECK_FAILURE), когда запускает ffmpeg из bash (из python) и пытается завершить процесс (это в WINDOWS с подсистемой Windows для Linux).
Процессы открываются из python (subprocess.Popen
в виде bash -c 'ffmpeg <args>'
однако, когда программа Python пытается убить их proc.kill()
или Python неожиданно завершает работу KeyboardInterrupt
команда питона линия закрывается, в то время как рауты остаться открыть, затем сразу же следует BSoD.
Пример кода:
formatted_command = ['bash', '-c', "'", 'ffmpeg', '-i', '<input file>',
'-vf', 'ass=<sub file>', '-strict', '-2', '<output file>', "'"]
process_list.append(sp.Popen(formatted_command, creationflags=sp.CREATE_NEW_CONSOLE,
stderr=sp.PIPE, universal_newlines=True))
А потом убить его
[proc.kill() for proc in process_list]
Обратите внимание, что BSoD возникает только тогда, когда я пытаюсь уничтожить процессы (или когда python пытается, допустив ошибку и убив процессы, которые он породил), а не когда они успешно завершаются.
Это может быть такой же проблемой с WSL, как и с ffmpeg, как с подпроцессом или даже с моим кодом, так что любые указания относительно того, что делать (или как уточнить мой вопрос), будут высоко оценены.
Спасибо за помощь.
Редактировать:
Вот моя папка C:\Windows\Minidump, запрошенная @ magicandre1981. Все они, скорее всего, с одной и той же ошибкой: http://www.filedropper.com/minidump_2
WinDBG говорит: «Вероятно, это вызвано: LXCORE.SYS (LXCORE!LxpFutexEvictWaitQueue+47)", но, к сожалению, я понятия не имею, что это значит для меня. Любая помощь будет оценена!
Изменить 2:
BSoD всегда приходят всякий раз, когда я пытаюсь уничтожить баши извне (диспетчер задач, уничтожение подпроцесса python, proc.kill () и т.д.), Так что это определенно проблема либо с ffmpeg, либо с WSL. Когда я напрямую отправляю ^ C на панели (делая консоль python также их stdin), они выходят нормально, как если бы они успешно завершили.
Это заставило меня поверить, что это проблема с попыткой просто убить процесс вне подсистемы, поэтому, если есть какие-либо предложения о том, как заставить bash самому завершить процесс (без захвата моего стандартного ввода и удаления его из python). ), Буду признателен.
Спасибо за любую помощь!