Clear systemd-notify status on exit #1373

Merged
fyrchik merged 1 commit from a-savchuk/frostfs-node:systemd-notify into master 2024-09-13 09:36:25 +00:00
3 changed files with 14 additions and 0 deletions

View file

@ -13,6 +13,7 @@ import (
"git.frostfs.info/TrueCloudLab/frostfs-node/misc" "git.frostfs.info/TrueCloudLab/frostfs-node/misc"
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/innerring" "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/innerring"
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/util/logger" "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/util/logger"
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/util/sdnotify"
"github.com/spf13/viper" "github.com/spf13/viper"
"go.uber.org/zap" "go.uber.org/zap"
) )
@ -124,4 +125,8 @@ func shutdown() {
zap.String("error", err.Error()), zap.String("error", err.Error()),
) )
} }
if err := sdnotify.ClearStatus(); err != nil {
log.Error(logs.FailedToReportStatusToSystemd, zap.Error(err))
}
} }

View file

@ -1398,4 +1398,8 @@ func (c *cfg) shutdown() {
for i := range c.closers { for i := range c.closers {
c.closers[len(c.closers)-1-i].fn() c.closers[len(c.closers)-1-i].fn()
} }
if err := sdnotify.ClearStatus(); err != nil {
c.log.Error(logs.FailedToReportStatusToSystemd, zap.Error(err))
}
} }

View file

@ -69,6 +69,11 @@ func Status(status string) error {
return Send("STATUS=" + status) return Send("STATUS=" + status)
} }
// ClearStatus resets the current service status previously set by Status.
func ClearStatus() error {
return Status("")
}
// Send state through the notify socket if any. // Send state through the notify socket if any.
// If the notify socket was not detected, it returns an error. // If the notify socket was not detected, it returns an error.
func Send(state string) error { func Send(state string) error {