Package for grouping many servers (http, grpc, ...) and start|stop by single command. Aims to simplify startup process and controll group of servers.
Start 3 http servers: pprof, prometheus, api.
// set skipErros option for not critical component
srv1 := mserv.NewHTTPServer(&http.Server{Addr: "8080", http.DefaultServeMux}, mserv.HTTPSkipErrors(true))
srv2 := mserv.NewHTTPServer(&http.Server{Addr: "8081", promhttp.Handler()})
// set shutdown timeout
srv3 := mserv.NewHTTPServer(&http.Server{Addr: "8082", api()}, mserv.HTTPShutdownTimeout(5*time.Second))
// the servers order is keeped at startup
srvs := mserv.New(srv1, srv2, srv3)
err := srvs.Start()
// ... do work ...
err := srvs.Stop()