栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python 查询并杀死Windows进程

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python 查询并杀死Windows进程

python 进程操作psutil

psutil可以获取系统运行状态,包括系统进程、CPU、内存、磁盘等信息,可以用于监控系统状态,且支持Linux/macOS/Windows平台。

安装psutil
pip install psutil
进程查询
psutil.pids() #获取当前系统上的进程id
psutil.Process(pid) #基于进程id查询单个进程信息(进程id,进程名,进程状态)

进程id 

### 示列
>>> print(psutil.pids())
[0, 4, 140......]
>>> print(psutil.Process(0))
psutil.Process(pid=0, name='System Idle Process', status='running')

杀死windows 进程
# psutil库未提供杀死进程的函数, 杀死进行可以通过cmd命令或者os.kill()函数
import os
import signal

#通过cmd命令
os.system("taskkill -f -pid 8036") #杀死进程id为8036的进程

#或者os.kill()函数
os.kill(8036, signal.SIGINT)

示列
# 杀死进程名为sleep_test1的所有进程

import psutil
import os
import signal

pids = psutil.pids()
for pid in pids:
    p = psutil.Process(pid)
    pid_name = p.name()
    print(f"{pid} {pid_name}")
    for pid in pids:
        if pid in orig_pids:
            pass
        else:
            try:
                p = psutil.Process(pid)
                # get process name according to pid
                process_name = p.name()
                # kill process "sleep_test1"
                if 'sleep_test1' == process_name:
                    print("kill specific process: pid(%s) %s" %(pid,p.name()))
                    os.kill(pid, signal.SIGINT)
                    except Exception as err:
                        pass
遇到的问题
    程序执行时报错 psutil.AccessDenied: psutil.AccessDenied (pid=13340)

​ 解决办法:该错误时权限不足导致的。可以通过以管理员身份运行 方式pycharm然后再执行脚本方式解决。通过以管理员身份运行cmd,然后再cmd里执行Python脚本也可以解决。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/739716.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号