psutil可以获取系统运行状态,包括系统进程、CPU、内存、磁盘等信息,可以用于监控系统状态,且支持Linux/macOS/Windows平台。
安装psutilpip install psutil
进程查询psutil.pids() #获取当前系统上的进程idpsutil.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 osimport signal#通过cmd命令os.system("taskkill -f -pid 8036") #杀死进程id为8036的进程#或者os.kill()函数os.kill(8036, signal.SIGINT)
示列# 杀死进程名为sleep_test1的所有进程import psutilimport osimport signalpids = 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脚本也可以解决。