/****************************************************** | |
# MAINTAINER : wongoo | |
# LICENCE : Apache License 2.0 | |
# EMAIL : gelnyang@163.com | |
# MOD : 2019-06-11 | |
******************************************************/ | |
package util | |
import ( | |
"os" | |
"os/signal" | |
"syscall" | |
) | |
type Closer interface { | |
Close() | |
} | |
func WaitCloseSignals(closer Closer) { | |
signals := make(chan os.Signal, 1) | |
signal.Notify(signals, os.Interrupt, os.Kill, syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT) | |
<-signals | |
closer.Close() | |
} |