mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-12-23 17:34:00 +03:00
journal: log user units for coredumps and show them in systemctl status
This commit is contained in:
parent
d2f1f23ad2
commit
f904546894
@ -144,11 +144,14 @@ int main(int argc, char* argv[]) {
|
||||
|
||||
core_unit = strappend("COREDUMP_UNIT=", t);
|
||||
free(t);
|
||||
|
||||
if (core_unit)
|
||||
IOVEC_SET_STRING(iovec[j++], core_unit);
|
||||
} else if (cg_pid_get_user_unit(pid, &t) >= 0) {
|
||||
core_unit = strappend("COREDUMP_USER_UNIT=", t);
|
||||
free(t);
|
||||
}
|
||||
|
||||
if (core_unit)
|
||||
IOVEC_SET_STRING(iovec[j++], core_unit);
|
||||
|
||||
/* OK, now we know it's not the journal, hence make use of
|
||||
* it */
|
||||
log_set_target(LOG_TARGET_JOURNAL_OR_KMSG);
|
||||
|
@ -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;
|
||||
|
||||
@ -994,9 +995,20 @@ int show_journal_by_user_unit(
|
||||
if (r < 0)
|
||||
goto finish;
|
||||
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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user