From e5c215556e4dd36197154c205fd4d14283160814 Mon Sep 17 00:00:00 2001 From: Janos Dobronszki Date: Tue, 21 Apr 2020 14:00:12 +0200 Subject: [PATCH] Add SIGKILL to shutdown signals (#1552) * Add SIGKILL to shutdown signals * go mod tidy * Add missing file --- server/server.go | 4 ++-- service.go | 4 ++-- util/signal/signal.go | 13 +++++++++++++ web/service.go | 4 ++-- 4 files changed, 19 insertions(+), 6 deletions(-) create mode 100644 util/signal/signal.go diff --git a/server/server.go b/server/server.go index 7b121b70..a22e90d2 100644 --- a/server/server.go +++ b/server/server.go @@ -5,13 +5,13 @@ import ( "context" "os" "os/signal" - "syscall" "time" "github.com/google/uuid" "github.com/micro/go-micro/v2/codec" "github.com/micro/go-micro/v2/logger" "github.com/micro/go-micro/v2/registry" + signalutil "github.com/micro/go-micro/v2/util/signal" ) // Server is a simple micro server abstraction @@ -200,7 +200,7 @@ func Run() error { } ch := make(chan os.Signal, 1) - signal.Notify(ch, syscall.SIGTERM, syscall.SIGINT) + signal.Notify(ch, signalutil.ShutdownSignals()...) if logger.V(logger.InfoLevel, log) { log.Infof("Received signal %s", <-ch) } diff --git a/service.go b/service.go index 5b34f2ae..982d7e17 100644 --- a/service.go +++ b/service.go @@ -6,7 +6,6 @@ import ( "runtime" "strings" "sync" - "syscall" "github.com/micro/go-micro/v2/auth" "github.com/micro/go-micro/v2/client" @@ -18,6 +17,7 @@ import ( "github.com/micro/go-micro/v2/plugin" "github.com/micro/go-micro/v2/server" "github.com/micro/go-micro/v2/store" + signalutil "github.com/micro/go-micro/v2/util/signal" "github.com/micro/go-micro/v2/util/wrapper" ) @@ -210,7 +210,7 @@ func (s *service) Run() error { ch := make(chan os.Signal, 1) if s.opts.Signal { - signal.Notify(ch, syscall.SIGTERM, syscall.SIGINT, syscall.SIGQUIT) + signal.Notify(ch, signalutil.ShutdownSignals()...) } select { diff --git a/util/signal/signal.go b/util/signal/signal.go new file mode 100644 index 00000000..1060dc1a --- /dev/null +++ b/util/signal/signal.go @@ -0,0 +1,13 @@ +package signal + +import ( + "os" + "syscall" +) + +// ShutDownSingals returns all the singals that are being watched for to shut down services. +func ShutdownSignals() []os.Signal { + return []os.Signal{ + syscall.SIGTERM, syscall.SIGINT, syscall.SIGQUIT, syscall.SIGKILL, + } +} diff --git a/web/service.go b/web/service.go index a06d7782..73b203db 100644 --- a/web/service.go +++ b/web/service.go @@ -10,7 +10,6 @@ import ( "path/filepath" "strings" "sync" - "syscall" "time" "github.com/micro/cli/v2" @@ -20,6 +19,7 @@ import ( maddr "github.com/micro/go-micro/v2/util/addr" mhttp "github.com/micro/go-micro/v2/util/http" mnet "github.com/micro/go-micro/v2/util/net" + signalutil "github.com/micro/go-micro/v2/util/signal" mls "github.com/micro/go-micro/v2/util/tls" ) @@ -404,7 +404,7 @@ func (s *service) Run() error { ch := make(chan os.Signal, 1) if s.opts.Signal { - signal.Notify(ch, syscall.SIGTERM, syscall.SIGINT) + signal.Notify(ch, signalutil.ShutdownSignals()...) } select {