You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
493 B
26 lines
493 B
package util |
|
|
|
import ( |
|
"os" |
|
"os/signal" |
|
"syscall" |
|
) |
|
|
|
// HandlerExit handler exit signal |
|
func HandlerExit(exitFn func(s os.Signal) int) { |
|
sch := make(chan os.Signal, 1) |
|
signal.Notify(sch, syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT) |
|
s := <-sch |
|
os.Exit(exitFn(s)) |
|
} |
|
|
|
// HandlerReload handler Reload signal |
|
func HandlerReload(reload func(s os.Signal)) { |
|
go func() { |
|
sch := make(chan os.Signal, 1) |
|
signal.Notify(sch, syscall.SIGHUP) |
|
for s := range sch { |
|
reload(s) |
|
} |
|
}() |
|
}
|
|
|