fix: exit successfully when catch specific signal
This commit is contained in:
parent
6c54d97978
commit
145bf7b82b
@ -286,8 +286,6 @@ func deregisterSelf(address []string) ([]byte, error) {
|
|||||||
type CallbackFunc func()
|
type CallbackFunc func()
|
||||||
|
|
||||||
func watchSignal(fn CallbackFunc) {
|
func watchSignal(fn CallbackFunc) {
|
||||||
defer fn()
|
|
||||||
|
|
||||||
// init signal
|
// init signal
|
||||||
c := make(chan os.Signal, 1)
|
c := make(chan os.Signal, 1)
|
||||||
signal.Notify(c, syscall.SIGHUP, syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT)
|
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())
|
log.Printf("get a signal %s", si.String())
|
||||||
switch si {
|
switch si {
|
||||||
case syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT:
|
case syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT:
|
||||||
return
|
fn()
|
||||||
|
os.Exit(0) // Exit successfully.
|
||||||
case syscall.SIGHUP:
|
case syscall.SIGHUP:
|
||||||
default:
|
default:
|
||||||
return
|
return
|
||||||
|
Loading…
Reference in New Issue
Block a user