func (g *GrafanaServerImpl) Start() { go listenToSystemSignals(g) writePIDFile() initRuntime() initSql() metrics.Init() search.Init() login.Init() social.NewOAuthService() eventpublisher.Init() plugins.Init() // init alerting if setting.ExecuteAlerts { engine := alerting.NewEngine() g.childRoutines.Go(func() error { return engine.Run(g.context) }) } // cleanup service cleanUpService := cleanup.NewCleanUpService() g.childRoutines.Go(func() error { return cleanUpService.Run(g.context) }) if err := notifications.Init(); err != nil { g.log.Error("Notification service failed to initialize", "erro", err) g.Shutdown(1, "Startup failed") return } g.startHttpServer() }
func main() { v := flag.Bool("v", false, "prints current version and exits") flag.Parse() if *v { fmt.Printf("Version %s (commit: %s)\n", version, commit) os.Exit(0) } buildstampInt64, _ := strconv.ParseInt(buildstamp, 10, 64) if buildstampInt64 == 0 { buildstampInt64 = time.Now().Unix() } setting.BuildVersion = version setting.BuildCommit = commit setting.BuildStamp = buildstampInt64 go listenToSystemSignels() flag.Parse() writePIDFile() initRuntime() metrics.Init() search.Init() login.Init() social.NewOAuthService() eventpublisher.Init() plugins.Init() alertingInit.Init() if err := notifications.Init(); err != nil { log.Fatal(3, "Notification service failed to initialize", err) } StartServer() exitChan <- 0 }