This commit is contained in:
lzh
2025-08-29 17:02:00 +08:00
parent cffb1ee0f4
commit 0d46bb7d07
7 changed files with 10 additions and 8 deletions

View File

@@ -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()

View File

@@ -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() {

View File

@@ -13,4 +13,5 @@ const (
ProcessStateStop ProcessState = iota ProcessStateStop ProcessState = iota
ProcessStateStart ProcessStateStart
ProcessStateWarnning ProcessStateWarnning
ProcessStateRunning
) )

View File

@@ -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
} }

View File

@@ -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)

View File

@@ -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

View File

@@ -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