diff --git a/cmd/micro/micro.go b/cmd/micro/micro.go index ac36ec19..f3c6acf1 100644 --- a/cmd/micro/micro.go +++ b/cmd/micro/micro.go @@ -40,8 +40,7 @@ var ( flagClean = flag.Bool("clean", false, "Clean configuration directory") optionFlags map[string]*string - sigterm chan os.Signal - sighup chan os.Signal + sighup chan os.Signal timerChan chan func() ) @@ -360,9 +359,9 @@ func main() { screen.Events = make(chan tcell.Event) - sigterm = make(chan os.Signal, 1) + util.Sigterm = make(chan os.Signal, 1) sighup = make(chan os.Signal, 1) - signal.Notify(sigterm, syscall.SIGTERM, syscall.SIGINT, syscall.SIGQUIT, syscall.SIGABRT) + signal.Notify(util.Sigterm, syscall.SIGTERM, syscall.SIGINT, syscall.SIGQUIT, syscall.SIGABRT) signal.Notify(sighup, syscall.SIGHUP) timerChan = make(chan func()) @@ -437,7 +436,7 @@ func DoEvent() { } } os.Exit(0) - case <-sigterm: + case <-util.Sigterm: for _, b := range buffer.OpenBuffers { if !b.Modified() { b.Fini() diff --git a/internal/util/util.go b/internal/util/util.go index 1cd5d46c..83dc4458 100644 --- a/internal/util/util.go +++ b/internal/util/util.go @@ -41,6 +41,8 @@ var ( // Stdout is a buffer that is written to stdout when micro closes Stdout *bytes.Buffer + // Sigterm is a channel where micro exits when written + Sigterm chan os.Signal ) func init() {