diff --git a/taskman.go b/taskman.go index 9a70d6e..dffa6ec 100644 --- a/taskman.go +++ b/taskman.go @@ -45,10 +45,9 @@ func (t *TaskMan) Put(cf *changedFile) { } func (t *TaskMan) preRun(cf *changedFile) { - if t.cmd != nil && t.cmd.Process != nil { + if t.cmd != nil && t.cmd.Process != nil && !t.cmd.ProcessState.Exited() { log.Println("stop old process ") - err := t.cmd.Process.Kill() - if err != nil { + if err := t.cmd.Process.Kill(); err != nil { log.Println(PreWarn, "stopped err, reason:", err) } } @@ -91,7 +90,7 @@ func (t *TaskMan) run(cf *changedFile) { log.Println(PreWarn, "cmd wait err ", err) break } - if t.cmd.Process != nil { + if t.cmd.Process != nil && !t.cmd.ProcessState.Exited() { if err = t.cmd.Process.Kill(); err != nil { log.Println(PreWarn, "cmd cannot kill, reason:", err) }