util/systemd: don't log warnings when not running under systemd
It caused our integration tests to fail, which prohibit logging to
os.Stderr for test cleanliness reasons.
import (
"log"
+ "os"
"sync"
"github.com/mdlayher/sdnotify"
@@ -35,8 +36,13 @@ func (l *logOnce) logf(format string, args ...interface{}) {
func notifier() *sdnotify.Notifier {
getNotifyOnce.Do(func() {
+ sock := os.Getenv(sdnotify.Socket)
+ if sock == "" {
+ // Not running under systemd probably. Bail out before logging.
+ return
+ }
var err error
- getNotifyOnce.v, err = sdnotify.New()
+ getNotifyOnce.v, err = sdnotify.Open(sock)
if err != nil {
log.Printf("systemd: systemd-notifier error: %v", err)
}
