Skip to content

Commit b7dada9

Browse files
ssongliuwanghe-fit2cloud
authored andcommitted
fix: 解决暂停进程被重新拉起的问题 (#1977)
Refs #1964
1 parent 9447936 commit b7dada9

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

backend/app/service/host_tool.go

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,10 @@ func (h *HostToolService) OperateSupervisorProcess(req request.SupervisorProcess
327327
if err = configFile.SaveTo(iniPath); err != nil {
328328
return err
329329
}
330-
return operateSupervisorCtl("reload", "", "")
330+
if err := operateSupervisorCtl("reread", "", ""); err != nil {
331+
return err
332+
}
333+
return operateSupervisorCtl("update", "", "")
331334
case "update":
332335
configFile, err := ini.Load(iniPath)
333336
if err != nil {
@@ -350,7 +353,10 @@ func (h *HostToolService) OperateSupervisorProcess(req request.SupervisorProcess
350353
if err = configFile.SaveTo(iniPath); err != nil {
351354
return err
352355
}
353-
return operateSupervisorCtl("reload", "", "")
356+
if err := operateSupervisorCtl("reread", "", ""); err != nil {
357+
return err
358+
}
359+
return operateSupervisorCtl("update", "", "")
354360
case "restart":
355361
return operateSupervisorCtl("restart", req.Name, "")
356362
case "start":
@@ -362,7 +368,10 @@ func (h *HostToolService) OperateSupervisorProcess(req request.SupervisorProcess
362368
_ = files.NewFileOp().DeleteFile(iniPath)
363369
_ = files.NewFileOp().DeleteFile(outLog)
364370
_ = files.NewFileOp().DeleteFile(errLog)
365-
_ = operateSupervisorCtl("reload", "", "")
371+
if err := operateSupervisorCtl("reread", "", ""); err != nil {
372+
return err
373+
}
374+
return operateSupervisorCtl("update", "", "")
366375
}
367376

368377
return nil
@@ -387,22 +396,21 @@ func (h *HostToolService) LoadProcessStatus() []response.ProcessStatus {
387396
for i := 0; i < len(datas); i++ {
388397
go func(index int) {
389398
for t := 0; t < 3; t++ {
390-
status, err := cmd.ExecWithTimeOut(fmt.Sprintf("supervisorctl status %s", datas[index].Name), 3*time.Second)
399+
status, err := cmd.ExecWithTimeOut(fmt.Sprintf("supervisorctl status %s", datas[index].Name), 2*time.Second)
391400
if err != nil {
392-
time.Sleep(2 * time.Second)
401+
time.Sleep(1 * time.Second)
393402
continue
394403
}
395404
fields := strings.Fields(status)
396405
if len(fields) < 5 {
397-
time.Sleep(2 * time.Second)
406+
time.Sleep(1 * time.Second)
398407
continue
399408
}
400409
datas[index].Name = fields[0]
401410
datas[index].Status = fields[1]
402411
if fields[1] != "RUNNING" {
403412
datas[index].Msg = strings.Join(fields[2:], " ")
404-
time.Sleep(1 * time.Second)
405-
continue
413+
break
406414
}
407415
datas[index].PID = strings.TrimSuffix(fields[3], ",")
408416
datas[index].Uptime = fields[5]

0 commit comments

Comments
 (0)