У меня есть сценарий python, который запускает другие процессы через subprocess.run(...)
. Обычно такой процесс выполняется автоматически, без чтения из стандартного ввода. Однако в случае ошибки процессы ожидают ввода пользователя. Я хочу обнаружить такую ситуацию из вызывающего python скрипта, а затем, например, убить этот процесс. Как я мог этого добиться?
(Моя идея заключалась в том, чтобы создать файловый объект, который вызывает исключение при вызове его метода .read()
, и передать его subprocess.Popen(...)
в качестве «приманки» для стандартного ввода-вывода kwarg. Однако это кажется некрасивым, потому что некоторые fileno
нужно было подделать.)