🐛 修复部分情况下, core信息无法响应 (#119)

* get_hw.py

* 🚨 `pre-commit-ci`修复格式错误

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
xiazimo 2025-05-10 23:23:25 +08:00 committed by GitHub
parent b08e6ba79d
commit 7e5abc6874
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -7,18 +7,41 @@ from gsuid_core.logger import logger
def get_cpu_info():
cpu_name = None # 初始化变量
# 尝试从 /proc/cpuinfo 获取型号
try:
with open('/proc/cpuinfo', 'r') as f:
for line in f:
if line.startswith('model name'):
cpu_name = line.split(': ')[1].strip()
break
break # 找到后立即退出循环
except FileNotFoundError:
cpu_name = platform.processor() or "Unknown CPU"
logger.warning("未找到 /proc/cpuinfo 文件尝试其他方式获取CPU名称")
# 如果未从文件获取到名称,尝试其他方式
if cpu_name is None:
logger.debug(
"未从 /proc/cpuinfo 获取到CPU名称尝试 platform.processor()"
)
try:
cpu_name = platform.processor() or "Unknown CPU"
except Exception as e:
logger.error(f"获取CPU名称失败: {e}")
cpu_name = "Unknown CPU"
# 找不到干脆别找了叫Unknown CPU也挺好至少比后台报错前台半天没响应的好QAQ
# 处理CPU名称格式
try:
cpu_name = ' '.join(cpu_name.split()[:2])
except Exception:
cpu_name = "Unknown CPU"
# 获取核心数和使用率
cores = psutil.cpu_count(logical=True)
usage = psutil.cpu_percent(interval=1)
cpu_name = ' '.join(cpu_name.split()[:2])
return {"name": f"{cpu_name} ({cores}核)", "value": usage}