func SetupSignalContext()

in pkg/server/signal.go [29:44]


func SetupSignalContext() context.Context {
	close(onlyOneSignalHandler)

	shutdownHandler = make(chan os.Signal, 2)

	ctx, cancel := context.WithCancel(context.Background())
	signal.Notify(shutdownHandler, syscall.SIGINT, syscall.SIGTERM)
	go func() {
		<-shutdownHandler
		cancel()
		<-shutdownHandler
		os.Exit(1) // second signal. Exit directly.
	}()

	return ctx
}