From 9b17a8dcbc1f94eb117a37b3b24ca9dae0d2d588 Mon Sep 17 00:00:00 2001
From: qixiaoning <jony.kee@outlook.com>
Date: 星期三, 29 十月 2025 09:40:54 +0800
Subject: [PATCH] 摄像机相关接口跳转,推送配置修改,系统权限菜单修改

---
 sysinfo-service/service/proc.go |  183 +++++++++++++++++++++++++++++----------------
 1 files changed, 118 insertions(+), 65 deletions(-)

diff --git a/sysinfo-service/service/proc.go b/sysinfo-service/service/proc.go
index 482e4a9..16350cb 100644
--- a/sysinfo-service/service/proc.go
+++ b/sysinfo-service/service/proc.go
@@ -1,11 +1,11 @@
 package service
 
 import (
-	"basic.com/pubsub/protomsg.git"
-	"basic.com/valib/bhomedbapi.git"
-	"regexp"
 	"strings"
 	"vamicro/sysinfo-service/models/gogpu"
+
+	"basic.com/pubsub/protomsg.git"
+	"basic.com/valib/bhomedbapi.git"
 
 	"github.com/shirou/gopsutil/process"
 )
@@ -13,21 +13,30 @@
 const ProcName = "sysinfo-service"
 
 var BasicProc = map[string]string{
-	"analysis":      "绠楁硶澶勭悊鍗曞厓",
-	"apiserver":     "basic鎺ュ彛鏈嶅姟",
-	"decoder":       "瑙嗛瑙g爜鏈嶅姟",
-	"elasticsearch": "鍒嗗竷寮忔暟鎹悳绱㈠紩鎿�",
-	"faceDetect":    "浜鸿劯璇嗗埆鏈嶅姟",
-	"file-service":  "鏂囦欢鏈嶅姟",
-	"pollcontrol":   "杞绠$悊",
-	"ruleServer":    "瑙勫垯澶勭悊鍗曞厓",
-	"dataProcess":   "瑙勫垯澶勭悊鍗曞厓",
-	"schedule":      "璋冨害杩涚▼",
-	"sdkCompare":    "浜鸿劯姣斿鏈嶅姟",
-	"sshd":          "ssh鏈嶅姟绔�",
-	"videopublish":  "瀹炴椂瑙嗛鎺ㄦ祦鏈嶅姟",
-	"videosvr.out":  "鍥芥爣涓婄骇鏈嶅姟",
-	"weed":          "鍒嗗竷寮忔枃浠剁郴缁�",
+	// "analysis":      "绠楁硶澶勭悊鍗曞厓",
+	"apiserver": "basic鎺ュ彛鏈嶅姟",
+	"decoder":   "瑙嗛瑙g爜鏈嶅姟",
+	// "elasticsearch": "鍒嗗竷寮忔暟鎹悳绱㈠紩鎿�",
+	// "faceDetect":    "浜鸿劯璇嗗埆鏈嶅姟",
+	"file-service": "鏂囦欢鏈嶅姟",
+	// "pollcontrol":  "杞绠$悊",
+	"pushServer": "瑙勫垯澶勭悊鍗曞厓",
+	// "dataProcess":   "瑙勫垯澶勭悊鍗曞厓",
+	"schedule": "璋冨害杩涚▼",
+	// "sdkCompare":    "浜鸿劯姣斿鏈嶅姟",
+	"sshd":       "ssh鏈嶅姟绔�",
+	"zlmediaKit": "瀹炴椂瑙嗛鎺ㄦ祦鏈嶅姟",
+	"wvp":        "鍥芥爣涓婄骇鏈嶅姟",
+	"weed":       "鍒嗗竷寮忔枃浠剁郴缁�",
+}
+
+var ModleProc = map[string]string{
+	"python smart_detect.py":          "鐩爣妫�娴嬫ā鍨�",
+	"/usr/bin/python smart_detect.py": "鐩爣妫�娴嬫ā鍨�",
+	"python qwen_detect.py":           "鍥剧墖瑙f瀽妯″瀷",
+	"/usr/bin/python qwen_detect.py":  "鍥剧墖瑙f瀽妯″瀷",
+	"python app.py":                   "瀵硅瘽妫�绱㈡ā鍨�",
+	"/usr/bin/python app.py":          "瀵硅瘽妫�绱㈡ā鍨�",
 }
 
 type UsedMap map[int]int64
@@ -51,10 +60,9 @@
 	Net  int32   `json:"net"`
 }
 
-func CollectAlgoProcess() []Proc {
-	var procs []Proc
+func CollectAlgoProcess() (rsp []Proc) {
 	var gpuMemTotal int64
-	var re = regexp.MustCompile(`-sdk=(\S+)`)
+	// 缁熻gpu
 	gpuPer := UsedMap{}
 
 	gpuInfo, err := gogpu.Info()
@@ -74,34 +82,84 @@
 
 	ps, _ := process.Processes()
 
-	// 缁熻绠楁硶淇℃伅
 	for _, p := range ps {
-		if name, err := p.Name(); err == nil {
-			if name == "analysis" {
-				cmdLine, _ := p.Cmdline()
-				if len(cmdLine) > 0 {
-					match := re.FindAllStringSubmatch(cmdLine, -1)
-					if len(match) > 0 && len(match[0]) > 1 {
-						proc := Proc{
-							Name: match[0][1],
-							Pid:  p.Pid,
-							Desc: match[0][1],
-						}
+		for k, v := range ModleProc {
+			if name, err := p.Cmdline(); err == nil {
 
-						proc.Cpu, _ = p.CPUPercent()
-						proc.Mem, _ = p.MemoryPercent()
-						proc.Gpu = gpuPer.Get(int(p.Pid))
-
-						procs = append(procs, proc)
+				if name == k {
+					proc := Proc{
+						Name: k,
+						Desc: v,
+						Cpu:  0,
+						Mem:  0,
+						Gpu:  0,
 					}
+					proc.Pid = p.Pid
+					proc.Cpu, _ = p.CPUPercent()
+					proc.Mem, _ = p.MemoryPercent()
+					proc.Gpu = gpuPer.Get(int(p.Pid))
+					rsp = append(rsp, proc)
 				}
+
 			}
 		}
-
 	}
 
-	return procs
+	return
+
 }
+
+// func CollectAlgoProcess() []Proc {
+// 	var procs []Proc
+// 	var gpuMemTotal int64
+// 	var re = regexp.MustCompile(`-sdk=(\S+)`)
+// 	gpuPer := UsedMap{}
+
+// 	gpuInfo, err := gogpu.Info()
+// 	if err == nil {
+// 		for _, gpu := range gpuInfo.Info {
+// 			gpuMemTotal = gpuMemTotal + gpu.GpuMemoryTotal
+// 		}
+
+// 		for _, proc := range gpuInfo.Processes {
+// 			if _, ok := gpuPer[proc.Pid]; ok {
+// 				gpuPer[proc.Pid] = gpuPer[proc.Pid] + int64(proc.UsedMem)
+// 			} else {
+// 				gpuPer[proc.Pid] = int64(proc.UsedMem)
+// 			}
+// 		}
+// 	}
+
+// 	ps, _ := process.Processes()
+
+// 	// 缁熻绠楁硶淇℃伅
+// 	for _, p := range ps {
+// 		if name, err := p.Name(); err == nil {
+// 			if name == "analysis" {
+// 				cmdLine, _ := p.Cmdline()
+// 				if len(cmdLine) > 0 {
+// 					match := re.FindAllStringSubmatch(cmdLine, -1)
+// 					if len(match) > 0 && len(match[0]) > 1 {
+// 						proc := Proc{
+// 							Name: match[0][1],
+// 							Pid:  p.Pid,
+// 							Desc: match[0][1],
+// 						}
+
+// 						proc.Cpu, _ = p.CPUPercent()
+// 						proc.Mem, _ = p.MemoryPercent()
+// 						proc.Gpu = gpuPer.Get(int(p.Pid))
+
+// 						procs = append(procs, proc)
+// 					}
+// 				}
+// 			}
+// 		}
+
+// 	}
+
+// 	return procs
+// }
 
 func CollectAppProcess() []Proc {
 	var procs []Proc
@@ -114,7 +172,7 @@
 	apps := dbApi.FindAppMap()
 	for k, v := range dbApi.FindAppMap() {
 		if v.ProcName != "" {
-			installedAppMap[v.ProcName] = apps[k]
+			installedAppMap[v.Id] = apps[k]
 		}
 	}
 
@@ -135,40 +193,27 @@
 			}
 		}
 	}
-
 	// 缁熻姝e湪杩愯鐨勫簲鐢ㄤ俊鎭�
 	ps, _ := process.Processes()
-	for _, p := range ps {
-		if name, err := p.Name(); err == nil {
-			if app, isExist := installedAppMap[name]; isExist {
-				proc := Proc{
-					Name: app.Name,
-					Pid:  p.Pid,
-					Desc: app.Title,
-				}
-
-				proc.Cpu, _ = p.CPUPercent()
-				proc.Mem, _ = p.MemoryPercent()
-				proc.Gpu = gpuPer.Get(int(p.Pid))
-
-				procs = append(procs, proc)
-
-				delete(installedAppMap, name)
-			}
-		}
-	}
-
-	// 杩藉姞鏈惎鍔ㄧ殑搴旂敤
 	for _, v := range installedAppMap {
 		proc := Proc{
 			Name: v.Name,
 			Pid:  0,
 			Desc: v.Title,
 		}
-
 		proc.Cpu = 0
 		proc.Mem = 0
 		proc.Gpu = 0
+		for _, p := range ps {
+			if name, err := p.Name(); err == nil {
+				if name == v.ProcName {
+					proc.Pid = p.Pid
+					proc.Cpu, _ = p.CPUPercent()
+					proc.Mem, _ = p.MemoryPercent()
+					proc.Gpu = gpuPer.Get(int(p.Pid))
+				}
+			}
+		}
 
 		procs = append(procs, proc)
 	}
@@ -194,7 +239,15 @@
 				}
 			}
 
-			if k == "elasticsearch" {
+			if k == "zlmediaKit" {
+				cmdLine, _ := p.Cmdline()
+				if strings.Contains(cmdLine, "MediaServer") {
+					proc.Pid = p.Pid
+
+					break
+				}
+			}
+			if k == "wvp" {
 				cmdLine, _ := p.Cmdline()
 				if strings.Contains(cmdLine, k) {
 					proc.Pid = p.Pid

--
Gitblit v1.8.0