一、根据进程名获取PID
import psutil
def get_pid_by_name(process_name):
for process in psutil.process_iter(['pid', 'name']): # 遍历任务管理器所有进程
if process.info['name'] == process_name: # 如果找到满足的进程名,返回其pid,否则继续遍历
return process.info['pid']
return None
process_name = 'chrome.exe'
pid = get_pid_by_name(process_name)
if pid:
print(f"进程 {process_name} 的pid为 {pid}")
else:
print(f"进程 {process_name} 不存在")
二、判断服务是否存在并running
import psutil
service_list = ["epcf_dp_svc", "epcf_fcm_svc", "epcf_mp_svc"] # 列出一个想要查找的服务名列表
for service in service_list: # 遍历列表
find_service = psutil.win_service_get(service) # 看服务是否存在
if find_service and find_service.status() == psutil.STATUS_RUNNING: # 如果存在并且状态为running
print(f"服务 {service} 存在并running")
else:
print(f"服务 {service} 不存在或者未运行")
三、每固定间隔记录以下CPU及内存使用情况
1、获取整体的CPU及内存使用情况
import psutil
import time
import csv
# 创建一个csv文件
csv_file = "process_usage.csv" # csv文件名
csv_headers = ['时间', 'CPU占用率', '内存使用率']
# 打开csv文件,写入文件头
with open(csv_file, 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(csv_headers)
# 循环执行
while True:
# 获取当前时间
current_time = time.strftime("%Y-%m-%d %H:%M:%s", time.localtime())
# 获取CPU使用率
cpu_usage = psutil.cpu_percent()
# 获取内存使用情况
memory_usage = psutil.memory_percent()
# 将数据写入csv文件
with open(csv_file, 'a', newline='') as f:
writer = csv.writer(f)
writer.writerow([current_time, cpu_usage, memory_usage])
# 等待10min一循环
time.sleep(600)
2、获取指定进程的CPU及内存使用情况
import psutil
import time
import csv
# 创建一个csv文件
csv_file = "process_usage.csv" # csv文件名
csv_headers = ['时间', 'CPU占用率', '内存使用率']
# 打开csv文件,写入文件头
with open(csv_file, 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(csv_headers)
# 根据进程名获取PID
def get_pid_by_name(process_name):
for process in psutil.process_iter(['pid', 'name']): # 遍历任务管理器所有进程
if process.info['name'] == process_name: # 如果找到满足的进程名,返回其pid,否则继续遍历
return process.info['pid']
return None
process_name = 'chrome.exe'
pid = get_pid_by_name(process_name)
if pid:
print(f"进程 {process_name} 的pid为 {pid}")
else:
print(f"进程 {process_name} 不存在")
# 循环执行
while True:
# 获取当前时间
current_time = time.strftime("%Y-%m-%d %H:%M:%s", time.localtime())
process = psutil.Process(pid)
# 获取CPU使用率
cpu_usage = process.cpu_percent()
# 获取内存使用情况
memory_usage = process.memory_percent()
# 将数据写入csv文件
with open(csv_file, 'a', newline='') as f:
writer = csv.writer(f)
writer.writerow([current_time, cpu_usage, memory_usage])
# 等待10min一循环
time.sleep(600)