func start(conf *config.Config, termCh chan struct{}) error { if conf.Silent { logging.SetLogLevel(logging.ERROR) } if conf.Verbose { logging.SetLogLevel(logging.DEBUG) } logger.Infof("Starting mackerel-agent version:%s, rev:%s, apibase:%s", version.VERSION, version.GITCOMMIT, conf.Apibase) if err := createPidFile(conf.Pidfile); err != nil { return fmt.Errorf("createPidFile(%q) failed: %s", conf.Pidfile, err) } defer removePidFile(conf.Pidfile) ctx, err := command.Prepare(conf) if err != nil { return fmt.Errorf("command.Prepare failed: %s", err) } c := make(chan os.Signal, 1) signal.Notify(c, os.Interrupt, syscall.SIGTERM, syscall.SIGQUIT, syscall.SIGHUP) go signalHandler(c, ctx, termCh) return command.Run(ctx, termCh) }
func start(conf *config.Config) int { if err := createPidFile(conf.Pidfile); err != nil { return exitStatusError } defer removePidFile(conf.Pidfile) ctx, err := command.Prepare(conf) if err != nil { logger.Criticalf(err.Error()) return exitStatusError } termCh := make(chan struct{}) c := make(chan os.Signal, 1) signal.Notify(c, os.Interrupt, syscall.SIGTERM, syscall.SIGQUIT, syscall.SIGHUP) go signalHandler(c, ctx, termCh) return command.Run(ctx, termCh) }