31 lines
436 B
Go
31 lines
436 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"os/signal"
|
|
"syscall"
|
|
)
|
|
|
|
func main() {
|
|
|
|
//exit process immediately upon sigterm
|
|
handleSigTerms()
|
|
|
|
//run
|
|
if err := run(os.Args, os.Stdout); err != nil {
|
|
fmt.Fprintf(os.Stderr, "%s\n", err)
|
|
os.Exit(1)
|
|
}
|
|
}
|
|
|
|
func handleSigTerms() {
|
|
c := make(chan os.Signal, 1)
|
|
signal.Notify(c, os.Interrupt, syscall.SIGTERM)
|
|
go func() {
|
|
<-c
|
|
fmt.Println("received SIGTERM, exiting")
|
|
os.Exit(1)
|
|
}()
|
|
}
|