github.com/sohaha/zlsgo@v1.7.13-0.20240501141223-10dd1a906f76/zutil/daemon/signal_win.go (about)

     1  //go:build windows
     2  // +build windows
     3  
     4  package daemon
     5  
     6  import (
     7  	"os"
     8  	"os/signal"
     9  	"syscall"
    10  )
    11  
    12  func KillSignal() bool {
    13  	sig, stop := SignalChan()
    14  	<-sig
    15  	stop()
    16  	return true
    17  }
    18  
    19  func SignalChan() (<-chan os.Signal, func()) {
    20  	quit := make(chan os.Signal, 1)
    21  	signal.Notify(quit, os.Interrupt, os.Kill, syscall.SIGINT, syscall.SIGTERM, syscall.SIGKILL)
    22  	return quit, func() {
    23  		signal.Stop(quit)
    24  	}
    25  }