diff --git a/cmd/commands/run/watch.go b/cmd/commands/run/watch.go index e87a6aa..5e6b493 100644 --- a/cmd/commands/run/watch.go +++ b/cmd/commands/run/watch.go @@ -183,17 +183,24 @@ func Kill() { } }() if cmd != nil && cmd.Process != nil { - cmd.Process.Signal(os.Interrupt) + // Windows does not support Interrupt + if runtime.GOOS == "windows" { + cmd.Process.Signal(os.Kill) + } else { + cmd.Process.Signal(os.Interrupt) + } + ch := make(chan struct{}, 1) go func() { cmd.Wait() ch <- struct{}{} }() + select { case <-ch: return case <-time.After(10 * time.Second): - beeLogger.Log.Info("Timeout; Force kill cmd process") + beeLogger.Log.Info("Timeout. Force kill cmd process") err := cmd.Process.Kill() if err != nil { beeLogger.Log.Errorf("Error while killing cmd process: %s", err)