Package daemon provides a Go implementation of the sd_notify protocol. It can be used to inform systemd of service start-up completion, watchdog events, and other status changes.
const ( // SdNotifyReady tells the service manager that service startup is finished // or the service finished loading its configuration. SdNotifyReady = "READY=1" // SdNotifyStopping tells the service manager that the service is beginning // its shutdown. SdNotifyStopping = "STOPPING=1" // SdNotifyReloading tells the service manager that this service is // reloading its configuration. Note that you must call SdNotifyReady when // it completed reloading. SdNotifyReloading = "RELOADING=1" // SdNotifyWatchdog tells the service manager to update the watchdog // timestamp for the service. SdNotifyWatchdog = "WATCHDOG=1" )
SdNotify sends a message to the init daemon. It is common to ignore the error. If `unsetEnvironment` is true, the environment variable `NOTIFY_SOCKET` will be unconditionally unset.
It returns one of the following: (false, nil) - notification not supported (i.e. NOTIFY_SOCKET is unset) (false, err) - notification supported, but failure happened (e.g. error connecting to NOTIFY_SOCKET or while sending data) (true, nil) - notification supported, data has been sent
SdWatchdogEnabled returns watchdog information for a service. Processes should call daemon.SdNotify(false, daemon.SdNotifyWatchdog) every time / 2. If `unsetEnvironment` is true, the environment variables `WATCHDOG_USEC` and `WATCHDOG_PID` will be unconditionally unset.
It returns one of the following: (0, nil) - watchdog isn't enabled or we aren't the watched PID. (0, err) - an error happened (e.g. error converting time). (time, nil) - watchdog is enabled and we can send ping.
time is delay before inactive service will be killed.