Я использую os.system() для запуска программы python и пытаюсь записать его вывод в файл. Это прекрасно работает.Убить дочерний процесс без убийства родителя
os.system("myprogram.py -arg1 -arg2 > outputfile.txt")
#something here to kill/cleanup whatever is left from os.system()
#read outputfile1.txt- this output file got all the data I needed from os.system()
Проблема заключается в том, что myprogram.py вызывает другую программу питона, которая дает мне выход, мне нужно, но не я даже чистовой можно увидеть приглашение стать другим, как на картинке ниже
Есть ли способ убить дочерний процесс, когда я добираюсь до следующей строки моей программы Я пробовал использовать os.system ("quit()") и subprocess.popen ("quit()", shell = False), и это ничего не делало.
Я не могу использовать exit(), потому что это просто убивает python все вместе.
Btw это киоски
f=subprocess.Popen("myprogram.py -arg1 > outputfile.txt") and then
f.communicate() #this just stalls because the child program does not end.
Я остаюсь с той же проблемой, хотя. Появляется приглашение python и даже rc.kill() или rc.terminate() ничего не делают. – Illusionist
Можно ли отправить quit() ребенку, оставленному подпроцессом (подсказка python?) – Illusionist
Если дочерний элемент выходит за подсказку python, в нем что-то не так. Попробуйте и _fix_, чтобы он не работал вокруг него. –