summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2013-12-08 13:27:05 -0600
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2013-12-10 07:40:55 -0500
commit2d43b190901902dbd98ccea77c1d1ddc9e2a9955 (patch)
tree7359df5835dbbd8f063f3e75ec6f257d65fdfd99
parent06d461ee6f3da6650e6d023d7828455752d70b0b (diff)
Ensure unit is journaled for short-lived or oneshot processes
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.
-rw-r--r--src/journal/journald-server.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c
index 01e75b6629..fc8115c31c 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