In the time it takes to process incoming log messages, the process we are logging details for may exit. This means the cgroup data is no longer available from '/proc'. Unfortunately, the way the code was structured before, we never log _SYSTEMD_UNIT if we don't have this cgroup information.
Add an else if case that allows the passed in unit_id to be logged even if we couldn't capture cgroup information. This ensures a command like `journalctl -u run-XXX` will return all log messages from a oneshot process. --- src/journal/journald-server.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c index 01e75b6..fc8115c 100644 --- a/src/journal/journald-server.c +++ b/src/journal/journald-server.c @@ -626,6 +626,9 @@ static void dispatch_message_real( } free(c); + } else if (unit_id) { + x = strappenda("_SYSTEMD_UNIT=", unit_id); + IOVEC_SET_STRING(iovec[n++], x); } #ifdef HAVE_SELINUX -- 1.8.5.1 _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel