From 6cccb270abceed1e42943577fff3e3b626d8dc56 Mon Sep 17 00:00:00 2001 From: Andreas Bielawski Date: Sun, 20 Mar 2022 16:29:10 +0100 Subject: [PATCH] Shut down bot gracefully --- main.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/main.go b/main.go index 876d04a..b2c10df 100644 --- a/main.go +++ b/main.go @@ -6,6 +6,8 @@ import ( _ "github.com/joho/godotenv/autoload" "log" "os" + "os/signal" + "syscall" "time" "gopkg.in/telebot.v3" @@ -55,5 +57,22 @@ func main() { bot.Handle("/start", h.OnStart) bot.Handle("/stop", h.OnStop) + channel := make(chan os.Signal) + signal.Notify(channel, os.Interrupt, syscall.SIGTERM) + signal.Notify(channel, os.Interrupt, syscall.SIGKILL) + signal.Notify(channel, os.Interrupt, syscall.SIGINT) + go func() { + <-channel + log.Println("Stopping...") + bot.Stop() + err := db.Close() + if err != nil { + log.Println(err) + os.Exit(1) + return + } + os.Exit(0) + }() + bot.Start() }