Я выполняю процесс через psutil
Python, который отвечает за большую нагрузку.Таким образом, я ограничиваю использование процессора с помощью cpulimit
.
import psutil
dd = psutil.Popen(["dd", "if=/dev/urandom", "of=/dev/zero"])
cpulimit = psutil.Popen(["cpulimit", "-q", "-z", "-p", str(dd.pid), "-l", "10"])
. Этот код работает до сих пор.Однако я не могу убить cpulimit
.После cpulimit.kill()
я все еще вижу процесс с идентификатором процесса cpulimit.pid
в диспетчере задач.Процесс завершается, когда del cpulimit
первый раз.
Более того, в отличие от cpulimit
через терминал, cpulimit.kill()
и del cpulimit
не восстанавливают полную загрузку ЦП для dd
.
Я знаю опроблема с убийством при использовании shell=True
в psutil.Popen
(оболочка уничтожается вместо ее дочернего элемента), но я не делаю этого.