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