19 lines
278 B
Go
19 lines
278 B
Go
package shutdown
|
|
|
|
import (
|
|
"os"
|
|
"os/signal"
|
|
"syscall"
|
|
)
|
|
|
|
// Close 监听signal并停止
|
|
func Close(handler func()) {
|
|
ctx := make(chan os.Signal, 1)
|
|
signal.Notify(ctx, syscall.SIGINT, syscall.SIGTERM, syscall.SIGHUP, syscall.SIGQUIT)
|
|
|
|
<-ctx
|
|
signal.Stop(ctx)
|
|
|
|
handler()
|
|
}
|