package main import ( "context" "fmt" "log" "net" "os" "os/signal" "syscall" "test3k/authDB/internal/config" server "test3k/authDB/internal/transport/grpc" api "test3k/authDB/pkg/api" "google.golang.org/grpc" ) func main() { config := config.NewConfig() ctx, _ := context.WithCancel(context.Background()) srv := server.NewServer() s := grpc.NewServer() // signalChannel := make(chan os.Signal, 1) signal.Notify(signalChannel, syscall.SIGINT) signal.Notify(signalChannel, syscall.SIGTERM) defer stop(signalChannel) // Запуск сервера go start(config, s, srv) // for { select { case <-signalChannel: return case <-ctx.Done(): return } } } // Остановка сервера func stop(signalChannel chan os.Signal) { log.Println("authDBServer stopping ...") signal.Stop(signalChannel) } // Запуск сервера func start(config *config.Config, s *grpc.Server, srv *server.AuthDBServer) { api.RegisterAuthDBServer(s, srv) // connStr := fmt.Sprintf(":%d", config.App.Port) lis, era := net.Listen("tcp", connStr) if era != nil { log.Fatal(era) } // log.Printf("authDBServer starting (%s)\n", connStr) // eru := s.Serve(lis) if eru != nil { log.Fatal(eru) } }