프로세스 재시작 지원
This commit is contained in:
@ -274,15 +274,22 @@ func NewClient() (HoustonClient, error) {
|
||||
var newprocs []*procmeta
|
||||
for _, proc := range hc.childProcs {
|
||||
if proc.cmd == exited {
|
||||
if proc.state == protos.ProcessState_Running {
|
||||
go func(cmd *exec.Cmd) {
|
||||
if err := cmd.Process.Signal(syscall.SIGTERM); err != nil {
|
||||
cmd.Process.Signal(os.Kill)
|
||||
if proc.state == protos.ProcessState_Running || proc.state == protos.ProcessState_Restart {
|
||||
go func(proc *procmeta) {
|
||||
if err := proc.cmd.Process.Signal(syscall.SIGTERM); err != nil {
|
||||
proc.cmd.Process.Signal(os.Kill)
|
||||
}
|
||||
cmd.Wait()
|
||||
cmd.Process.Release()
|
||||
logger.Println("abnormal termination of process :", cmd.Args)
|
||||
}(proc.cmd)
|
||||
proc.cmd.Wait()
|
||||
proc.cmd.Process.Release()
|
||||
|
||||
if proc.state == protos.ProcessState_Restart {
|
||||
hc.startChildProcess(&shared.StartProcessRequest{
|
||||
Version: proc.version,
|
||||
Name: proc.name,
|
||||
Args: proc.cmd.Args,
|
||||
}, op)
|
||||
}
|
||||
}(proc)
|
||||
}
|
||||
} else {
|
||||
newprocs = append(newprocs, proc)
|
||||
|
||||
Reference in New Issue
Block a user