diff options
author | Mirco Tischler <mt-ml@gmx.de> | 2013-02-04 15:13:23 +0100 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2013-02-07 01:02:34 -0500 |
commit | f9045468945cd06fad84f9fbf44019c6813fc50a (patch) | |
tree | 6b47775e6797059e732f04dd9a177352b09b8398 /src/shared/logs-show.c | |
parent | d2f1f23ad2636cf05589a67b5229c7fd604bc21f (diff) |
journal: log user units for coredumps and show them in systemctl status
Diffstat (limited to 'src/shared/logs-show.c')
-rw-r--r-- | src/shared/logs-show.c | 18 |
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) |