This commit is contained in:
akrike
2025-07-06 16:08:41 +08:00
parent a05d9c3f03
commit ec9f1fefdb
4 changed files with 24 additions and 25 deletions

View File

@@ -52,7 +52,6 @@ func (p *procApi) StartProcess(ctx *gin.Context, req model.ProcessUuidReq) (err
return err1 return err1
} }
logic.ProcessCtlLogic.AddProcess(req.Uuid, proc) logic.ProcessCtlLogic.AddProcess(req.Uuid, proc)
rOk(ctx, "Operation successful!", nil)
return nil return nil
} }
if prod.State.State == 1 { if prod.State.State == 1 {
@@ -61,7 +60,6 @@ func (p *procApi) StartProcess(ctx *gin.Context, req model.ProcessUuidReq) (err
prod.ResetRestartTimes() prod.ResetRestartTimes()
err = prod.Start() err = prod.Start()
return return
} }
func (p *procApi) StartAllProcess(ctx *gin.Context, _ any) (err error) { func (p *procApi) StartAllProcess(ctx *gin.Context, _ any) (err error) {

View File

@@ -110,13 +110,13 @@ func (w *wsApi) WebsocketShareHandle(ctx *gin.Context, req model.WebsocketHandle
} }
guestName := "guest-" + strconv.Itoa(int(data.ID)) // 构造访客用户名 guestName := "guest-" + strconv.Itoa(int(data.ID)) // 构造访客用户名
if proc.HasWsConn(guestName) { if proc.HasWsConn(guestName) {
return errors.New("connection already exists; unable to establish a new one") return errors.New("connection already exists")
} }
if proc.State.State != 1 { if proc.State.State != 1 {
return errors.New("process is currently running") return errors.New("process not is running")
} }
if !proc.VerifyControl() { if !proc.VerifyControl() {
return errors.New("insufficient permissions; please check your access rights") return errors.New("insufficient permissions")
} }
conn, err := upgrader.Upgrade(ctx.Writer, ctx.Request, nil) conn, err := upgrader.Upgrade(ctx.Writer, ctx.Request, nil)
if err != nil { if err != nil {

View File

@@ -114,24 +114,25 @@ func (p *processCtlLogic) getProcessInfoList(processConfiglist []model.Process)
Name: v.Name, Name: v.Name,
Uuid: v.Uuid, Uuid: v.Uuid,
} }
if value, ok := p.processMap.Load(v.Uuid); ok { process, err := p.GetProcess(v.Uuid)
process := value.(*ProcessBase) if err != nil {
pi.State.Info = process.State.Info continue
pi.State.State = process.State.State
pi.StartTime = process.GetStartTimeFormat()
pi.User = process.GetUserString()
pi.Usage.Cpu = process.performanceStatus.cpu
pi.Usage.Mem = process.performanceStatus.mem
if config.CF.PerformanceCapacityDisplay {
pi.Usage.CpuCapacity = float64(runtime.NumCPU()) * 100.0
pi.Usage.MemCapacity = float64(utils.UnwarpIgnore(mem.VirtualMemory()).Total >> 10)
}
pi.Usage.Time = process.performanceStatus.time
pi.TermType = process.Type()
pi.CgroupEnable = process.Config.cgroupEnable
pi.CpuLimit = process.Config.cpuLimit
pi.MemoryLimit = process.Config.memoryLimit
} }
pi.State.Info = process.State.Info
pi.State.State = process.State.State
pi.StartTime = process.GetStartTimeFormat()
pi.User = process.GetUserString()
pi.Usage.Cpu = process.performanceStatus.cpu
pi.Usage.Mem = process.performanceStatus.mem
if config.CF.PerformanceCapacityDisplay {
pi.Usage.CpuCapacity = float64(runtime.NumCPU()) * 100.0
pi.Usage.MemCapacity = float64(utils.UnwarpIgnore(mem.VirtualMemory()).Total >> 10)
}
pi.Usage.Time = process.performanceStatus.time
pi.TermType = process.Type()
pi.CgroupEnable = process.Config.cgroupEnable
pi.CpuLimit = process.Config.cpuLimit
pi.MemoryLimit = process.Config.memoryLimit
processInfoList = append(processInfoList, pi) processInfoList = append(processInfoList, pi)
} }
return processInfoList return processInfoList

View File

@@ -70,7 +70,7 @@ func routePathInit(r *gin.Engine) {
processGroup.PUT("", middle.OprPermission(constants.OPERATION_START), bind(api.ProcApi.StartProcess, Body)) processGroup.PUT("", middle.OprPermission(constants.OPERATION_START), bind(api.ProcApi.StartProcess, Body))
processGroup.PUT("/all", bind(api.ProcApi.StartAllProcess, None)) processGroup.PUT("/all", bind(api.ProcApi.StartAllProcess, None))
processGroup.DELETE("/all", bind(api.ProcApi.KillAllProcess, None)) processGroup.DELETE("/all", bind(api.ProcApi.KillAllProcess, None))
processGroup.POST("/share", middle.RolePermission(constants.ROLE_ADMIN), bind(api.ProcApi.ProcessCreateShare, Body)) processGroup.POST("/share", middle.RolePermission(constants.ROLE_ADMIN), bind(api.ProcApi.ProcessCreateShare, Query))
processGroup.GET("/control", middle.RolePermission(constants.ROLE_ROOT), middle.ProcessWaitCond.WaitTriggerMiddel, bind(api.ProcApi.ProcessControl, Query)) processGroup.GET("/control", middle.RolePermission(constants.ROLE_ROOT), middle.ProcessWaitCond.WaitTriggerMiddel, bind(api.ProcApi.ProcessControl, Query))
proConfigGroup := processGroup.Group("/config") proConfigGroup := processGroup.Group("/config")
@@ -176,7 +176,7 @@ func bind[T any](fn func(*gin.Context, T) error, bindOption int) func(*gin.Conte
rErr(ctx, err) rErr(ctx, err)
return return
} }
if ctx.Writer.Status() == 0 { if !ctx.Writer.Written() {
ctx.JSON(200, gin.H{ ctx.JSON(200, gin.H{
"code": 0, "code": 0,
"message": "success", "message": "success",