У меня есть код Python, который я хочу отлаживать с помощью perf. Для этого я хочу использовать подпроцесс. Следующая команда возвращает информацию о процессе, относящуюся к процедуре, до тех пор, пока команда не выйдет через Ctrl^C.Подпроцесс Python работает в фоновом режиме перед возвратом вывода
perf stat -p <my_pid>
Теперь я хочу, чтобы запустить это внутри кода Python в фоновом режиме, пока какой-то момент, когда я хочу, чтобы иметь возможность завершить свою работу и печать вывода команды. Для того, чтобы показать, что я имею в виду:
x = subprocess.call(["perf","stat","-p",str(GetMyProcessID())])
.. CODE TO DEBUG ..
print x # I want to terminate subprocess here and output 'x'
Теперь я хочу, чтобы определить, что делать в строке «печати х» для завершения процесса и проверьте вывод. Любая идея/помощь приветствуются.
Приветствия и спасибо заранее,
Это похоже на то, что он действительно близок к тому, что я хочу. Один вопрос: поскольку перфомант динамически производит статистику, любая задержка в системе, такая как time.sleep, увеличивает количество команд (следовательно, ошибок) на выходе. Есть ли способ сделать это без сна? – mozcelikors
Другое дело, что у меня есть первичный выход, но с Fatal IO error 11. Должен ли я ожидать эту ошибку? – mozcelikors
Тем не менее, дает мне представление о инструкциях, спасибо. – mozcelikors