diff --git a/route/router.go b/route/router.go index dfced502..73845a01 100644 --- a/route/router.go +++ b/route/router.go @@ -352,14 +352,6 @@ func NewRouter( router.interfaceMonitor = interfaceMonitor } - if runtime.GOOS == "windows" { - powerListener, err := winpowrprof.NewEventListener(router.notifyWindowsPowerEvent) - if err != nil { - return nil, E.Cause(err, "initialize power listener") - } - router.powerListener = powerListener - } - if ntpOptions.Enabled { ntpDialer, err := dialer.New(router, ntpOptions.DialerOptions) if err != nil { @@ -589,6 +581,15 @@ func (r *Router) Start() error { } } + if runtime.GOOS == "windows" { + powerListener, err := winpowrprof.NewEventListener(r.notifyWindowsPowerEvent) + if err == nil { + r.powerListener = powerListener + } else { + r.logger.Warn("initialize power listener: ", err) + } + } + if r.powerListener != nil { monitor.Start("start power listener") err := r.powerListener.Start()