From c65a9916c203951762dc8d981c70cde83f7ded95 Mon Sep 17 00:00:00 2001 From: qinglong Date: Sun, 14 Jun 2026 10:32:51 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20Windows=E8=B4=9F=E8=BD=BD=20=E2=80=94=20?= =?UTF-8?q?psutil.getloadavg()=20+=20=E5=85=A80=E6=98=BE=E7=A4=BAN/A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/sentinel/dashboard.html | 2 +- services/web_panel/utils/system_info.py | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/plugins/sentinel/dashboard.html b/plugins/sentinel/dashboard.html index 123a07a..84f59a0 100644 --- a/plugins/sentinel/dashboard.html +++ b/plugins/sentinel/dashboard.html @@ -293,7 +293,7 @@ var trafEl = card.querySelector('.traf-val'); var procEl = card.querySelector('.proc-val'); var sysData = n.system || {}; - if (loadEl && sysData.cpu) loadEl.textContent = (sysData.cpu.load_avg||[0,0,0]).map(function(v){return v.toFixed(1);}).join(' / '); + if (loadEl && sysData.cpu) loadEl.textContent = var la = sysData.cpu.load_avg||[0,0,0]; loadEl.textContent = (la[0]+la[1]+la[2])===0 ? "N/A" : la.map(function(v){return v.toFixed(1);}).join(" / "); } if (swapEl && sysData.swap) { var st = sysData.swap.total_gb||0; swapEl.textContent = st > 0 ? (sysData.swap.percent||0).toFixed(1)+'% ('+(sysData.swap.used_gb||0).toFixed(1)+'G)' : '—'; } // 磁盘分区列表 var diskList = card.querySelector('.disk-list'); diff --git a/services/web_panel/utils/system_info.py b/services/web_panel/utils/system_info.py index ae16f87..f48799c 100644 --- a/services/web_panel/utils/system_info.py +++ b/services/web_panel/utils/system_info.py @@ -75,10 +75,16 @@ class SystemInfoCollector: def _get_cpu(self) -> Dict[str, Any]: if self.psutil: + load = [0, 0, 0] + if hasattr(os, 'getloadavg'): + load = os.getloadavg() + elif hasattr(self.psutil, 'getloadavg'): + try: load = list(self.psutil.getloadavg()) + except: pass return { "percent": self.psutil.cpu_percent(interval=0.1), "cores": self.psutil.cpu_count(), - "load_avg": os.getloadavg() if hasattr(os, 'getloadavg') else [0, 0, 0] + "load_avg": load } try: load = os.getloadavg() if hasattr(os, "getloadavg") else [0.0, 0.0, 0.0]