mirror of
https://github.com/lzh-1625/go_process_manager.git
synced 2025-10-05 16:06:51 +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
|
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) {
|
||||||
|
@@ -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 {
|
||||||
|
@@ -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
|
||||||
|
@@ -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",
|
||||||
|
Reference in New Issue
Block a user