lib/atexit: add SIGTERM to signals which run the exit handlers on unix

This commit is contained in:
Nick Craig-Wood 2019-02-27 22:49:22 +00:00
parent 7267d19ad8
commit fef73763aa
3 changed files with 21 additions and 3 deletions

View File

@ -31,11 +31,10 @@ func Register(fn func()) FnHandle {
fns[&fn] = true fns[&fn] = true
fnsMutex.Unlock() fnsMutex.Unlock()
// Run AtExit handlers on SIGINT or SIGTERM so everything gets // Run AtExit handlers on exitSignals so everything gets tidied up properly
// tidied up properly
registerOnce.Do(func() { registerOnce.Do(func() {
exitChan = make(chan os.Signal, 1) exitChan = make(chan os.Signal, 1)
signal.Notify(exitChan, os.Interrupt) // syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT signal.Notify(exitChan, exitSignals...)
go func() { go func() {
sig := <-exitChan sig := <-exitChan
if sig == nil { if sig == nil {

View File

@ -0,0 +1,9 @@
//+build windows plan9
package atexit
import (
"os"
)
var exitSignals = []os.Signal{os.Interrupt}

10
lib/atexit/atexit_unix.go Normal file
View File

@ -0,0 +1,10 @@
//+build !windows,!plan9
package atexit
import (
"os"
"syscall"
)
var exitSignals = []os.Signal{syscall.SIGINT, syscall.SIGTERM} // Not syscall.SIGQUIT as we want the default behaviour