package core import ( "log" "msw/proto" "msw/rpc" "msw/shell" "net" "time" "google.golang.org/grpc" "google.golang.org/grpc/keepalive" ) var kaep = keepalive.EnforcementPolicy{ MinTime: 5 * time.Second, PermitWithoutStream: true, } var kasp = keepalive.ServerParameters{ Time: 1 * time.Second, Timeout: 5 * time.Second, } func Start() { log.Println("Starting main loop") go shell.ExecuteOne("./resources/node_exporter") go shell.ExecuteOne("./resources/ipmi_exporter") go func() { listAddr := "0.0.0.0:3939" list, err := net.Listen("tcp", listAddr) if err != nil { log.Fatal(err) } s := grpc.NewServer( grpc.KeepaliveEnforcementPolicy(kaep), grpc.KeepaliveParams(kasp), ) proto.RegisterMSWServer(s, &rpc.MSWServer{}) log.Println("RPC Server started on", listAddr) if err := s.Serve(list); err != nil { log.Fatal(err) } }() }