uniugm/admin/lib/xos/signal.go
2025-04-18 17:17:23 +08:00

31 lines
617 B
Go

package xos
import (
"os"
"os/signal"
"syscall"
)
func WatchSignal(notify func(signal2 os.Signal)) {
c := make(chan os.Signal, 1)
signal.Notify(c, syscall.SIGHUP, syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT, syscall.SIGKILL)
for {
s := <-c
switch s {
case syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT, syscall.SIGKILL:
notify(s)
return
case syscall.SIGHUP:
// TODO reload
default:
return
}
}
}
func WatchSignal1() chan os.Signal {
c := make(chan os.Signal, 1)
signal.Notify(c, syscall.SIGHUP, syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT, syscall.SIGKILL)
return c
}