github.com/gogf/gf@v1.16.9/.example/os/gproc/signal/signal_handler_gproc.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  	"github.com/gogf/gf/os/gproc"
     6  	"os"
     7  	"time"
     8  )
     9  
    10  func signalHandlerForMQ(sig os.Signal) {
    11  	fmt.Println("MQ is shutting down due to signal:", sig.String())
    12  	time.Sleep(time.Second)
    13  	fmt.Println("MQ is shut down smoothly")
    14  }
    15  
    16  func signalHandlerForMain(sig os.Signal) {
    17  	fmt.Println("MainProcess is shutting down due to signal:", sig.String())
    18  }
    19  
    20  func main() {
    21  	fmt.Println("Process start, pid:", os.Getpid())
    22  	gproc.AddSigHandlerShutdown(
    23  		signalHandlerForMQ,
    24  		signalHandlerForMain,
    25  	)
    26  	gproc.Listen()
    27  }