mirror of
https://github.com/caddyserver/caddy.git
synced 2026-05-31 02:55:17 -04:00
notify: Send all sd_notify signals from main caddy process (#4060)
Initial sd_notify support was added in #3963, but that sent signals from both cmdRun and cmdReload. This approach has two drawbacks: - Reloads initiated via the API do not send signals. - The signals are sent from different processes, which requires the `NotifyAccess=exec` directive in the unit file. This change moves the NotifyReloading and NotifyReadiness invocations to Load, which address both of those drawbacks. It also adds a complimentary NotifyStopping method which is invoked from handleStop. All the notify methods are defined in a notify package to avoid an import loop.
This commit is contained in:
@@ -269,10 +269,6 @@ func cmdRun(fl Flags) (int, error) {
|
||||
}
|
||||
}
|
||||
|
||||
if err := NotifyReadiness(); err != nil {
|
||||
caddy.Log().Error("unable to notify readiness to service manager", zap.Error(err))
|
||||
}
|
||||
|
||||
select {}
|
||||
}
|
||||
|
||||
@@ -294,15 +290,6 @@ func cmdReload(fl Flags) (int, error) {
|
||||
reloadCmdAddrFlag := fl.String("address")
|
||||
reloadCmdForceFlag := fl.Bool("force")
|
||||
|
||||
if err := NotifyReloading(); err != nil {
|
||||
caddy.Log().Error("unable to notify reloading to service manager", zap.Error(err))
|
||||
}
|
||||
defer func() {
|
||||
if err := NotifyReadiness(); err != nil {
|
||||
caddy.Log().Error("unable to notify readiness to service manager", zap.Error(err))
|
||||
}
|
||||
}()
|
||||
|
||||
// get the config in caddy's native format
|
||||
config, configFile, err := loadConfig(reloadCmdConfigFlag, reloadCmdConfigAdapterFlag)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user