package main import ( "log" "os" "os/signal" "syscall" ) func main() { log.SetFlags(0) flags := Flags{} flags.FromArgs() log.Println("+++ Started Sia server +++") defer log.Println("--- Stopped Sia server ---") config := GetStartupConfig(flags.ConfigPath) tx := make(chan MQTTMessage) go MQTTRun(config.MQTT, tx) go HomematicRun(config.Homematic, 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) }