【发布时间】:2018-05-06 20:15:00
【问题描述】:
我正在寻找一个 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(R) Core(TM) i5-7200U CPU @ 2.50GHz
【问题讨论】:
-
您正在运行一个不受约束的循环,它将尽可能快地运行。您可以选择在
while循环中使用time.sleep(s)来减慢它的速度,这将大大降低其CPU 使用率。或者,寻找其他一些基于事件的方法。 -
我想,你想把这个进程作为一个守护进程生成?
-
你正在运行一个未缩进的循环,我修复了它:)
标签: python kill-process psutil