github.com/mattevans/edward@v1.9.2/examples/platform_specific_service/simple/main.go (about)

     1  // A simple executable that stays runnning until an interrupt is received
     2  // Based on: https://gobyexample.com/signals
     3  package main
     4  
     5  import (
     6  	"fmt"
     7  	"os"
     8  	"os/signal"
     9  	"syscall"
    10  )
    11  
    12  func main() {
    13  	sigs := make(chan os.Signal, 1)
    14  	done := make(chan bool, 1)
    15  
    16  	signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
    17  
    18  	go func() {
    19  		_ = <-sigs
    20  		done <- true
    21  	}()
    22  
    23  	fmt.Println("Waiting for signal")
    24  	<-done
    25  	fmt.Println("Exiting")
    26  }