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
[email protected]
http://lists.freedesktop.org/mailman/listinfo/systemd-devel