Как убить процесс с минимальным потреблением процессора - PullRequest
0 голосов
/ 06 мая 2018

Я искал скрипт на python для уничтожения определенных запущенных процессов. Я получил скрипт для получения списка всех запущенных в данный момент процессов. Поэтому я сделал несколько модификаций, и это работает следующим образом:

В списке с именем blackList хранятся все нежелательные процессы, которые необходимо уничтожить. Скрипт перебирает извлеченные имена процессов и сравнивает их с содержимым черного списка. Если он совпадает, то этот процесс прекращается.

Код:

import psutil

blackList = ["SkypeHost.exe", "Music.UI.exe", "SearchUI.exe", "Video.UI.exe", "backgroundTaskHost.exe"]

while True:
  for proc in psutil.process_iter():
    try:
        pinfo = proc.as_dict(attrs=['pid', 'name', 'username'])
    except psutil.NoSuchProcess:
        pass
    else:
        for i in blackList:
            if pinfo["name"] == i:
                proc.kill()

Скрипт работает нормально, но он потребляет большую часть моего процессора.

Без запуска скрипта

Без запуска скрипта

во время работы скрипта

во время работы скрипта

Есть ли способ минимизировать это потребление? Почему он потребляет так много процессора?

Мой процессор: процессор Intel® Core iM- i5-7200U @ 2,50 ГГц

1 Ответ

0 голосов
/ 06 мая 2018
import time

и добавьте time.sleep(some small time frame) в свой цикл.

Выполнение while True без перерыва приведет к перерыву в работе вашего процессора.

...