Ответ 1
AFAIK, нет никакого переносимого способа получения информации о количестве процессорного времени, используемого дочерним процессом в Python. Но что делает модуль subprocess
(при условии, что вы запускаете дочерний элемент с subprocess.Popen
, который рекомендуется), дайте вам идентификатор процесса дочернего процесса в Popen.pid
. Что вы можете сделать в Windows, запустите tasklist
(см. руководство), используя subprocess.check_output
несколько раз и извлекая информацию о дочерних процессах из своего вывода, используя PID в качестве фильтра.
Как только дочерний процесс имеет достаточно процессорного времени, и если вы использовали subprocess.Popen()
для запуска дочернего процесса, вы можете использовать метод Popen.kill
, чтобы его убить.
Но я думаю, что было бы легче убить дочерний процесс после определенного количества секунд времени на стене с помощью таймера. Потому что, если дочерний процесс зависает без использования времени процессора (по какой-либо причине), ваша программа python ожидает, что она будет потреблять процессорное время.