summaryrefslogtreecommitdiff
path: root/src/shared
diff options
context:
space:
mode:
authorMirco Tischler <mt-ml@gmx.de>2013-02-04 15:13:23 +0100
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2013-02-07 01:02:34 -0500
commitf9045468945cd06fad84f9fbf44019c6813fc50a (patch)
tree6b47775e6797059e732f04dd9a177352b09b8398 /src/shared
parentd2f1f23ad2636cf05589a67b5229c7fd604bc21f (diff)
journal: log user units for coredumps and show them in systemctl status
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/logs-show.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c
index 034fde6624..7dacccf6af 100644
--- a/src/shared/logs-show.c
+++ b/src/shared/logs-show.c
@@ -954,7 +954,7 @@ int show_journal_by_user_unit(
uid_t uid,
OutputFlags flags) {
- _cleanup_free_ char *m1 = NULL, *m2 = NULL, *m3 = NULL;
+ _cleanup_free_ char *m1 = NULL, *m2 = NULL, *m3 = NULL, *m4 = NULL;
sd_journal *j = NULL;
int r;
@@ -972,7 +972,8 @@ int show_journal_by_user_unit(
if (asprintf(&m1, "_SYSTEMD_USER_UNIT=%s", unit) < 0 ||
asprintf(&m2, "USER_UNIT=%s", unit) < 0 ||
- asprintf(&m3, "_UID=%d", uid) < 0) {
+ asprintf(&m3, "COREDUMP_USER_UNIT=%s", unit) < 0 ||
+ asprintf(&m4, "_UID=%d", uid) < 0) {
r = -ENOMEM;
goto finish;
}
@@ -985,7 +986,7 @@ int show_journal_by_user_unit(
r = sd_journal_add_match(j, m1, 0);
if (r < 0)
goto finish;
- r = sd_journal_add_match(j, m3, 0);
+ r = sd_journal_add_match(j, m4, 0);
if (r < 0)
goto finish;
@@ -996,9 +997,20 @@ int show_journal_by_user_unit(
r = sd_journal_add_match(j, m2, 0);
if (r < 0)
goto finish;
+ r = sd_journal_add_match(j, m4, 0);
+ if (r < 0)
+ goto finish;
+
+ /* Look for coredumps of the service */
+ r = sd_journal_add_disjunction(j);
+ if (r < 0)
+ goto finish;
r = sd_journal_add_match(j, m3, 0);
if (r < 0)
goto finish;
+ r = sd_journal_add_match(j, m4, 0);
+ if (r < 0)
+ goto finish;
r = show_journal(f, j, mode, n_columns, not_before, how_many, flags);
if (r < 0)