Skip to content
  • Chengwei Yang's avatar
    Handle activated child stdout/stderr correctly in systemd environment · 5be1e778
    Chengwei Yang authored
    In systemd environment, dbus-daemon will run as no-fork mode since this
    is the recommended practice of systemd.
    
    In that scenario, child activated by dbus-daemon will inherit
    dbus-daemon standard streams, includes stdin/stdout/stderr. stdin will
    be redirected to /dev/null by systemd and stdout/stderr will be catched
    by systemd log subsystem. Since the child inherit stdout/stderr from
    dbus-daemon, so from systemd journal log, the child log output will be
    identified with dbus-daemon identifier. So it's a little confusing.
    
    This patch redirects the child stdout/stderr to systemd journal stream,
    and with its owned service name as identifier. However, thing not fixed
    perfectly due to the socket ucred of the child is owned by dbus-daemon,
    so the pid isn't the real pid of the chile.
    
    Bug: https://bugs.freedesktop.org/show_bug.cgi?id=68559
    
    
    Reviewed-by: default avatarSimon McVittie <simon.mcvittie@collabora.co.uk>
    5be1e778