1
0
forked from apps/featurer
featurer/server/internal/application/signals.go

25 lines
548 B
Go

package application
import (
"log/slog"
"os"
"os/signal"
"syscall"
)
func (a *Application) signalsListener() {
slog.Info("Starting listening for SIGTERM signal...")
listener := make(chan os.Signal, 1)
signal.Notify(listener, syscall.SIGTERM, os.Interrupt)
<-listener
slog.Info("Got SIGTERM, stopping Featurer...")
if err := a.Shutdown(); err != nil {
slog.Error("Something went wrong when trying to shutdown application", "error", err.Error())
slog.Error("!!! APPLICATION CANNOT BE STOPPED NORMALLY, KILL IT MANUALLY !!!")
}
}