diff --git a/cmd/dwelling-radio/main.go b/cmd/dwelling-radio/main.go index 91e5efb..15f9161 100644 --- a/cmd/dwelling-radio/main.go +++ b/cmd/dwelling-radio/main.go @@ -99,20 +99,17 @@ func main() { } }() - reloadSignal := make(chan os.Signal, 1) - signal.Notify(reloadSignal, syscall.SIGHUP) + sysSignal := make(chan os.Signal, 1) + signal.Notify(sysSignal, os.Interrupt, syscall.SIGINT, syscall.SIGTERM, syscall.SIGABRT, syscall.SIGSEGV, syscall.SIGHUP) - go func() { - for { - <-reloadSignal + for { + switch <-sysSignal { + case os.Interrupt, syscall.SIGINT, syscall.SIGTERM, syscall.SIGABRT, syscall.SIGSEGV: + return + case syscall.SIGHUP: if err := plylst.Reload(); err != nil { log.Println(err) } } - }() - - doneSignal := make(chan os.Signal, 1) - signal.Notify(doneSignal, os.Interrupt, syscall.SIGINT, syscall.SIGTERM, syscall.SIGABRT, syscall.SIGSEGV) - - <-doneSignal + } }