mirror of
https://github.com/lzh-1625/go_process_manager.git
synced 2025-10-05 16:06:51 +08:00
update
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
|
"github.com/lzh-1625/go_process_manager/internal/app/eum"
|
||||||
"github.com/lzh-1625/go_process_manager/internal/app/logic"
|
"github.com/lzh-1625/go_process_manager/internal/app/logic"
|
||||||
"github.com/lzh-1625/go_process_manager/internal/app/model"
|
"github.com/lzh-1625/go_process_manager/internal/app/model"
|
||||||
"github.com/lzh-1625/go_process_manager/internal/app/repository"
|
"github.com/lzh-1625/go_process_manager/internal/app/repository"
|
||||||
@@ -63,7 +64,7 @@ func (p *procApi) StartProcess(ctx *gin.Context, req struct {
|
|||||||
logic.ProcessCtlLogic.AddProcess(req.Uuid, proc)
|
logic.ProcessCtlLogic.AddProcess(req.Uuid, proc)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
if prod.State.State == 1 {
|
if prod.State.State == eum.ProcessStateStart {
|
||||||
return errors.New("process is currently running")
|
return errors.New("process is currently running")
|
||||||
}
|
}
|
||||||
prod.ResetRestartTimes()
|
prod.ResetRestartTimes()
|
||||||
|
@@ -74,7 +74,7 @@ func (w *wsApi) WebsocketHandle(ctx *gin.Context, req model.WebsocketHandleReq)
|
|||||||
wsLock: sync.Mutex{},
|
wsLock: sync.Mutex{},
|
||||||
}
|
}
|
||||||
proc.ReadCache(wci)
|
proc.ReadCache(wci)
|
||||||
if proc.State.State == 1 {
|
if proc.State.State == eum.ProcessStateStart {
|
||||||
proc.SetTerminalSize(req.Cols, req.Rows)
|
proc.SetTerminalSize(req.Cols, req.Rows)
|
||||||
w.startWsConnect(wci, cancel, proc, hasOprPermission(ctx, req.Uuid, eum.OperationTerminalWrite))
|
w.startWsConnect(wci, cancel, proc, hasOprPermission(ctx, req.Uuid, eum.OperationTerminalWrite))
|
||||||
proc.AddConn(reqUser, wci)
|
proc.AddConn(reqUser, wci)
|
||||||
@@ -112,7 +112,7 @@ func (w *wsApi) WebsocketShareHandle(ctx *gin.Context, req model.WebsocketHandle
|
|||||||
if proc.HasWsConn(guestName) {
|
if proc.HasWsConn(guestName) {
|
||||||
return errors.New("connection already exists")
|
return errors.New("connection already exists")
|
||||||
}
|
}
|
||||||
if proc.State.State != 1 {
|
if proc.State.State != eum.ProcessStateStart {
|
||||||
return errors.New("process not is running")
|
return errors.New("process not is running")
|
||||||
}
|
}
|
||||||
if !proc.VerifyControl() {
|
if !proc.VerifyControl() {
|
||||||
|
@@ -13,4 +13,5 @@ const (
|
|||||||
ProcessStateStop ProcessState = iota
|
ProcessStateStop ProcessState = iota
|
||||||
ProcessStateStart
|
ProcessStateStart
|
||||||
ProcessStateWarnning
|
ProcessStateWarnning
|
||||||
|
ProcessStateRunning
|
||||||
)
|
)
|
||||||
|
@@ -281,7 +281,7 @@ func (p *ProcessBase) monitorHanler() {
|
|||||||
ticker := time.NewTicker(time.Second * time.Duration(config.CF.PerformanceInfoInterval))
|
ticker := time.NewTicker(time.Second * time.Duration(config.CF.PerformanceInfoInterval))
|
||||||
defer ticker.Stop()
|
defer ticker.Stop()
|
||||||
for {
|
for {
|
||||||
if p.State.State != 1 {
|
if p.State.State != eum.ProcessStateStart {
|
||||||
log.Logger.Debugw("进程未在运行", "state", p.State.State)
|
log.Logger.Debugw("进程未在运行", "state", p.State.State)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@@ -37,7 +37,7 @@ func (p *processCtlLogic) KillProcess(uuid int) error {
|
|||||||
if !ok {
|
if !ok {
|
||||||
return errors.New("进程类型错误")
|
return errors.New("进程类型错误")
|
||||||
}
|
}
|
||||||
if result.State.State != 1 {
|
if result.State.State != eum.ProcessStateStart {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
result.State.manualStopFlag = true
|
result.State.manualStopFlag = true
|
||||||
@@ -61,7 +61,7 @@ func (p *processCtlLogic) KillAllProcess() {
|
|||||||
wg := sync.WaitGroup{}
|
wg := sync.WaitGroup{}
|
||||||
p.processMap.Range(func(key, value any) bool {
|
p.processMap.Range(func(key, value any) bool {
|
||||||
process := value.(*ProcessBase)
|
process := value.(*ProcessBase)
|
||||||
if process.State.State != 1 {
|
if process.State.State != eum.ProcessStateStart {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
|
@@ -39,7 +39,7 @@ func (p *ProcessPty) Start() (err error) {
|
|||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
if ok := p.SetState(eum.ProcessStateStart, func() bool {
|
if ok := p.SetState(eum.ProcessStateStart, func() bool {
|
||||||
return p.State.State != 1
|
return p.State.State != eum.ProcessStateStart
|
||||||
}); !ok {
|
}); !ok {
|
||||||
log.Logger.Warnw("进程已在运行,跳过启动")
|
log.Logger.Warnw("进程已在运行,跳过启动")
|
||||||
return nil
|
return nil
|
||||||
|
@@ -46,7 +46,7 @@ func (p *ProcessStd) Start() (err error) {
|
|||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
if ok := p.SetState(eum.ProcessStateStart, func() bool {
|
if ok := p.SetState(eum.ProcessStateStart, func() bool {
|
||||||
return p.State.State != 1
|
return p.State.State != eum.ProcessStateStart
|
||||||
}); !ok {
|
}); !ok {
|
||||||
log.Logger.Warnw("进程已在运行,跳过启动")
|
log.Logger.Warnw("进程已在运行,跳过启动")
|
||||||
return nil
|
return nil
|
||||||
|
Reference in New Issue
Block a user