package main import ( "flag" "fmt" "log" "os" "os/signal" "syscall" cRPC "git.loafle.net/commons_go/rpc" "git.loafle.net/overflow/overflow_discovery/rpc" "git.loafle.net/overflow/overflow_discovery/server" ) var ( sockFile *string ) func init() { sockFile = flag.String("sock", serverAddr, "Socket file") flag.Parse() } func main() { registry := cRPC.NewRegistry() if err := registry.RegisterService(new(rpc.DiscoveryService), ""); nil != err { panic(err) } s := server.New(*sockFile, registry) stop := make(chan os.Signal) signal.Notify(stop, syscall.SIGINT) go func() { if err := s.Serve(); err != nil { log.Fatalf("Cannot start rpc server: %s", err) return } }() select { case signal := <-stop: fmt.Printf("Got signal: %v\n", signal) } s.Stop() } /** azure consul dns ec2 file gce kubernetes marathon openstack triton zookeeper */