func (p *program) Start() error { glog.InitWithFlag(flagSet) flagSet.Parse(os.Args[1:]) if *showVersion { fmt.Println(version.String("nsqlookupd")) os.Exit(0) } var cfg map[string]interface{} if *config != "" { _, err := toml.DecodeFile(*config, &cfg) if err != nil { log.Fatalf("ERROR: failed to load config file %s - %s", *config, err.Error()) } } opts := nsqlookupd.NewOptions() options.Resolve(opts, flagSet, cfg) if opts.LogDir != "" { glog.SetGLogDir(opts.LogDir) } nsqlookupd.SetLogger(opts) glog.StartWorker(time.Second * 2) daemon := nsqlookupd.New(opts) daemon.Main() p.nsqlookupd = daemon return nil }
func main() { glog.InitWithFlag(flagSet) flagSet.Parse(os.Args[1:]) if *showVersion { fmt.Println(version.String("nsqadmin")) return } defer glog.Flush() if *templateDir != "" { log.Printf("WARNING: --template-dir is deprecated and will be removed in the next release (templates are now compiled into the binary)") } exitChan := make(chan int) signalChan := make(chan os.Signal, 1) go func() { <-signalChan exitChan <- 1 }() signal.Notify(signalChan, syscall.SIGINT, syscall.SIGTERM) var cfg map[string]interface{} if *config != "" { _, err := toml.DecodeFile(*config, &cfg) if err != nil { log.Fatalf("ERROR: failed to load config file %s - %s", *config, err) } } opts := nsqadmin.NewOptions() options.Resolve(opts, flagSet, cfg) if opts.LogDir != "" { glog.SetGLogDir(opts.LogDir) } glog.StartWorker(time.Second * 2) nsqadmin := nsqadmin.New(opts) nsqadmin.Main() <-exitChan nsqadmin.Exit() }
func mustStartNSQD(opts *nsqdNs.Options) (*net.TCPAddr, *net.TCPAddr, *nsqdNs.NSQD, *NsqdServer) { opts.TCPAddress = "127.0.0.1:0" opts.HTTPAddress = "127.0.0.1:0" opts.HTTPSAddress = "127.0.0.1:0" if opts.DataPath == "" { tmpDir, err := ioutil.TempDir("", fmt.Sprintf("nsq-test-%d", time.Now().UnixNano())) if err != nil { panic(err) } opts.DataPath = tmpDir } if opts.LogDir == "" { opts.LogDir = opts.DataPath } glog.SetGLogDir(opts.LogDir) glog.StartWorker(time.Second) _, nsqdServer := NewNsqdServer(opts) nsqdServer.Main() return nsqdServer.ctx.realTCPAddr(), nsqdServer.ctx.realHTTPAddr(), nsqdServer.ctx.nsqd, nsqdServer }