diff --git a/main.go b/main.go index db9b1d3..8d33fae 100644 --- a/main.go +++ b/main.go @@ -576,11 +576,13 @@ func start(asDaemon, firstCall bool) { os.Exit(0) } - inviteDaemon := newInviteDaemon(time.Duration(60*time.Second), app) - go inviteDaemon.run() + invDaemon := newInviteDaemon(time.Duration(60*time.Second), app) + go invDaemon.run() + defer invDaemon.shutdown() userDaemon := newUserDaemon(time.Duration(60*time.Second), app) go userDaemon.run() + defer userDaemon.shutdown() if app.config.Section("password_resets").Key("enabled").MustBool(false) && serverType == mediabrowser.JellyfinServer { go app.StartPWR() diff --git a/userdaemon.go b/userdaemon.go index 2df7fc9..c2c549b 100644 --- a/userdaemon.go +++ b/userdaemon.go @@ -42,6 +42,13 @@ func (rt *userDaemon) run() { } } +func (rt *userDaemon) shutdown() { + rt.Stopped = true + rt.ShutdownChannel <- "Down" + <-rt.ShutdownChannel + close(rt.ShutdownChannel) +} + func (app *appContext) checkUsers() { if err := app.storage.loadUsers(); err != nil { app.err.Printf("Failed to load user expiries: %v", err)