* feat(backend): try a new approach for logs formatting (http) * feat(backend): added logger module * feat(backend): added project/session info to /i endpoint * feat(backend): found a solution for correct caller information * feat(backend): finished logs for http handlers * feat(backend): finished logs for mobile http handlers * feat(backend): finished ender * feat(backend): finished assets * feat(backend): finished heuristics * feat(backend): finished image-storage * feat(backend): finished sink * feat(backend): finished storage * feat(backend): formatted logs in all services * feat(backend): finished foss part * feat(backend): added missed foss part * feat(backend): fixed panic in memory manager and sink service * feat(backend): connectors
24 lines
461 B
Go
24 lines
461 B
Go
package terminator
|
|
|
|
import (
|
|
"context"
|
|
"os"
|
|
"os/signal"
|
|
"syscall"
|
|
|
|
"openreplay/backend/pkg/logger"
|
|
)
|
|
|
|
// ServiceStopper is a common interface for all services
|
|
type ServiceStopper interface {
|
|
Stop()
|
|
}
|
|
|
|
func Wait(log logger.Logger, s ServiceStopper) {
|
|
sigChan := make(chan os.Signal, 1)
|
|
signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM)
|
|
sig := <-sigChan
|
|
log.Info(context.Background(), "caught signal %v: terminating", sig)
|
|
s.Stop()
|
|
os.Exit(0)
|
|
}
|