浏览代码

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.
Brad Fitzpatrick 5 年之前
父节点
当前提交
5f07da4854
共有 1 个文件被更改,包括 7 次插入1 次删除
  1. 7 1
      util/systemd/systemd_linux.go

+ 7 - 1
util/systemd/systemd_linux.go

@@ -8,6 +8,7 @@ package systemd
 
 import (
 	"log"
+	"os"
 	"sync"
 
 	"github.com/mdlayher/sdnotify"
@@ -35,8 +36,13 @@ var (
 
 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)
 		}