Merge pull request #173 from CarlJi/0303

fix: exit successfully when catch specific signal
This commit is contained in:
Changjun Ji 2021-03-18 13:23:33 +08:00 committed by GitHub
commit 4f04bb45d8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -286,8 +286,6 @@ func deregisterSelf(address []string) ([]byte, error) {
type CallbackFunc func()
func watchSignal(fn CallbackFunc) {
defer fn()
// init signal
c := make(chan os.Signal, 1)
signal.Notify(c, syscall.SIGHUP, syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT)
@ -296,7 +294,8 @@ func watchSignal(fn CallbackFunc) {
log.Printf("get a signal %s", si.String())
switch si {
case syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT:
return
fn()
os.Exit(0) // Exit successfully.
case syscall.SIGHUP:
default:
return