diff --git a/server/service_windows.go b/server/service_windows.go index 2920f74b..a7ab37d7 100644 --- a/server/service_windows.go +++ b/server/service_windows.go @@ -42,6 +42,7 @@ type winServiceWrapper struct { } var dockerized = false +var startupDelay = 10 * time.Second func init() { if v, exists := os.LookupEnv("NATS_DOCKERIZED"); exists && v == "1" { @@ -66,8 +67,16 @@ func (w *winServiceWrapper) Execute(args []string, changes <-chan svc.ChangeRequ status <- svc.Status{State: svc.StartPending} go w.server.Start() + if v, exists := os.LookupEnv("NATS_STARTUP_DELAY"); exists { + delay, err := time.ParseDuration(v) + if err == nil { + startupDelay = delay + } else { + w.server.Errorf("Failed to parse \"%v\" as a duration for startup: %s", v, err) + } + } // Wait for accept loop(s) to be started - if !w.server.ReadyForConnections(10 * time.Second) { + if !w.server.ReadyForConnections(startupDelay) { // Failed to start. return false, 1 }