package main import ( "log" "os" "os/signal" "syscall" ) func main() { log.Println("+++ Started Sia server +++") defer log.Println("--- Stopped Sia server ---") tx := make(chan MQTTMessage) go MQTTRun(tx) go HomematicRun(tx) Await(syscall.SIGTERM, syscall.SIGINT) } func Await(signals ...syscall.Signal) { listener := make(chan os.Signal) for _, s := range signals { signal.Notify(listener, s) } sig := <-listener log.Printf("Received OS signal '%v'\n", sig) }