psutil可以获取系统运行状态,包括系统进程、CPU、内存、磁盘等信息,可以用于监控系统状态,且支持Linux/macOS/Windows平台。
安装psutilpip 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脚本也可以解决。



