feat_: graceful shutdown with status-backend (#6189)
* fix_: graceful shutdown node in status-backend * fix_: function doc
This commit is contained in:
parent
e6c2f89f03
commit
8b95c81488
|
@ -4,6 +4,8 @@ import (
|
|||
"flag"
|
||||
stdlog "log"
|
||||
"os"
|
||||
"os/signal"
|
||||
"syscall"
|
||||
|
||||
"golang.org/x/crypto/ssh/terminal"
|
||||
|
||||
|
@ -13,6 +15,7 @@ import (
|
|||
"github.com/status-im/status-go/internal/sentry"
|
||||
"github.com/status-im/status-go/internal/version"
|
||||
"github.com/status-im/status-go/logutils"
|
||||
statusgo "github.com/status-im/status-go/mobile"
|
||||
)
|
||||
|
||||
var (
|
||||
|
@ -39,6 +42,7 @@ func main() {
|
|||
defer sentry.Recover()
|
||||
|
||||
flag.Parse()
|
||||
go handleInterrupts()
|
||||
|
||||
srv := server.NewServer()
|
||||
srv.Setup()
|
||||
|
@ -57,3 +61,16 @@ func main() {
|
|||
srv.RegisterMobileAPI()
|
||||
srv.Serve()
|
||||
}
|
||||
|
||||
// handleInterrupts catches interrupt signal (SIGTERM/SIGINT) and
|
||||
// gracefully logouts and stops the node.
|
||||
func handleInterrupts() {
|
||||
ch := make(chan os.Signal, 1)
|
||||
signal.Notify(ch, syscall.SIGINT, syscall.SIGTERM)
|
||||
defer signal.Stop(ch)
|
||||
|
||||
receivedSignal := <-ch
|
||||
logger.Info("interrupt signal received", "signal", receivedSignal)
|
||||
_ = statusgo.Logout()
|
||||
os.Exit(0)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue