mirror of
https://github.com/lzh-1625/go_process_manager.git
synced 2025-10-04 23:52:53 +08:00
1
This commit is contained in:
@@ -52,7 +52,6 @@ func (p *procApi) StartProcess(ctx *gin.Context, req model.ProcessUuidReq) (err
|
||||
return err1
|
||||
}
|
||||
logic.ProcessCtlLogic.AddProcess(req.Uuid, proc)
|
||||
rOk(ctx, "Operation successful!", nil)
|
||||
return nil
|
||||
}
|
||||
if prod.State.State == 1 {
|
||||
@@ -61,7 +60,6 @@ func (p *procApi) StartProcess(ctx *gin.Context, req model.ProcessUuidReq) (err
|
||||
prod.ResetRestartTimes()
|
||||
err = prod.Start()
|
||||
return
|
||||
|
||||
}
|
||||
|
||||
func (p *procApi) StartAllProcess(ctx *gin.Context, _ any) (err error) {
|
||||
|
@@ -110,13 +110,13 @@ func (w *wsApi) WebsocketShareHandle(ctx *gin.Context, req model.WebsocketHandle
|
||||
}
|
||||
guestName := "guest-" + strconv.Itoa(int(data.ID)) // 构造访客用户名
|
||||
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 {
|
||||
return errors.New("process is currently running")
|
||||
return errors.New("process not is running")
|
||||
}
|
||||
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)
|
||||
if err != nil {
|
||||
|
@@ -114,24 +114,25 @@ func (p *processCtlLogic) getProcessInfoList(processConfiglist []model.Process)
|
||||
Name: v.Name,
|
||||
Uuid: v.Uuid,
|
||||
}
|
||||
if value, ok := p.processMap.Load(v.Uuid); ok {
|
||||
process := value.(*ProcessBase)
|
||||
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
|
||||
process, err := p.GetProcess(v.Uuid)
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
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)
|
||||
}
|
||||
return processInfoList
|
||||
|
@@ -70,7 +70,7 @@ func routePathInit(r *gin.Engine) {
|
||||
processGroup.PUT("", middle.OprPermission(constants.OPERATION_START), bind(api.ProcApi.StartProcess, Body))
|
||||
processGroup.PUT("/all", bind(api.ProcApi.StartAllProcess, 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))
|
||||
|
||||
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)
|
||||
return
|
||||
}
|
||||
if ctx.Writer.Status() == 0 {
|
||||
if !ctx.Writer.Written() {
|
||||
ctx.JSON(200, gin.H{
|
||||
"code": 0,
|
||||
"message": "success",
|
||||
|
Reference in New Issue
Block a user