sysdeps: Don't use LOG_PERROR if systemd is booted
authorColin Walters <walters@verbum.org>
Sun, 24 Feb 2013 13:46:48 +0000 (08:46 -0500)
committerColin Walters <walters@verbum.org>
Tue, 26 Feb 2013 00:36:17 +0000 (19:36 -0500)
Otherwise we get duplicated log output, since stdout/stderr are
connected to the journal by default.

https://bugs.freedesktop.org/show_bug.cgi?id=61399

dbus/dbus-sysdeps-util-unix.c

index 7beab20..fe8843f 100644 (file)
@@ -429,13 +429,16 @@ void
 _dbus_init_system_log (void)
 {
 #ifdef HAVE_SYSLOG_H
+  int logopts = LOG_PID;
 
-#if HAVE_DECL_LOG_PERROR
-  openlog ("dbus", LOG_PID | LOG_PERROR, LOG_DAEMON);
-#else
-  openlog ("dbus", LOG_PID, LOG_DAEMON);
+#ifdef HAVE_DECL_LOG_PERROR
+#ifdef HAVE_SYSTEMD
+  if (sd_booted () <= 0)
+#endif
+    logopts |= LOG_PERROR;
 #endif
 
+  openlog ("dbus", logopts, LOG_DAEMON);
 #endif
 }