feat: 优化 CPU 和磁盘信息获取,增强对 Server 版本的支持,改进终端关闭逻辑

This commit is contained in:
Akizon77
2025-06-09 00:57:17 +08:00
parent 6e4bd4e4ae
commit ef2c638932
4 changed files with 49 additions and 19 deletions

View File

@@ -2,7 +2,6 @@ package monitoring
import (
"runtime"
"strconv"
"strings"
"time"
@@ -22,24 +21,27 @@ func Cpu() CpuInfo {
if err != nil {
cpuinfo.CPUName = "Unknown"
}
// multiple CPU
// 多个 CPU
if len(info) > 1 {
cpuCountMap := make(map[string]int)
for _, cpu := range info {
cpuCountMap[cpu.ModelName]++
}
for modelName, count := range cpuCountMap {
if count > 1 {
cpuinfo.CPUName += modelName + " x " + strconv.Itoa(count) + ", "
} else {
cpuinfo.CPUName += modelName + ", "
/*
// multiple CPU
// 多个 CPU
if len(info) > 1 {
cpuCountMap := make(map[string]int)
for _, cpu := range info {
cpuCountMap[cpu.ModelName]++
}
for modelName, count := range cpuCountMap {
if count > 1 {
cpuinfo.CPUName += modelName + " x " + strconv.Itoa(count) + ", "
} else {
cpuinfo.CPUName += modelName + ", "
}
}
cpuinfo.CPUName = cpuinfo.CPUName[:len(cpuinfo.CPUName)-2] // Remove trailing comma and space
} else if len(info) == 1 {
cpuinfo.CPUName = info[0].ModelName
}
cpuinfo.CPUName = cpuinfo.CPUName[:len(cpuinfo.CPUName)-2] // Remove trailing comma and space
} else if len(info) == 1 {
cpuinfo.CPUName = info[0].ModelName
}
*/
cpuinfo.CPUName = info[0].ModelName
cpuinfo.CPUName = strings.TrimSpace(cpuinfo.CPUName)

View File

@@ -36,6 +36,10 @@ func Disk() DiskInfo {
// isPhysicalDisk 判断分区是否为物理磁盘
func isPhysicalDisk(part disk.PartitionStat) bool {
// 对于LXC等基于loop的根文件系统始终包含根挂载点
if part.Mountpoint == "/" {
return true
}
mountpoint := strings.ToLower(part.Mountpoint)
// 临时文件系统
if mountpoint == "/tmp" || mountpoint == "/var/tmp" || mountpoint == "/dev/shm" ||

View File

@@ -21,6 +21,10 @@ func OSName() string {
if err != nil {
return "Microsoft Windows"
}
// 如果是 Server 版本,直接返回原始名称
if strings.Contains(productName, "Server") {
return productName
}
// Windows 11
majorVersion, _, err := key.GetIntegerValue("CurrentMajorVersionNumber")