diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2020-02-29 10:59:27 +0100 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2020-03-01 11:42:19 +0100 |
commit | 7365a296703154fb01a2a45e84bcde4825d47c9e (patch) | |
tree | ebb6bad6fe1522ff3c4bd1bb7f5af0155ff6a461 | |
parent | 5ca02bfc39685ffa62aa46533f951bd8ede89082 (diff) | |
download | systemd-7365a296703154fb01a2a45e84bcde4825d47c9e.tar.gz |
pid1: when printing status message status, give reason
-rw-r--r-- | src/core/job.c | 2 | ||||
-rw-r--r-- | src/core/main.c | 2 | ||||
-rw-r--r-- | src/core/manager.c | 23 | ||||
-rw-r--r-- | src/core/manager.h | 4 |
4 files changed, 16 insertions, 15 deletions
diff --git a/src/core/job.c b/src/core/job.c index 5982404cf0..741c79fdae 100644 --- a/src/core/job.c +++ b/src/core/job.c @@ -862,7 +862,7 @@ static void job_print_done_status_message(Unit *u, JobType t, JobResult result) status = job_print_done_status_messages[result].word; if (result != JOB_DONE) - manager_flip_auto_status(u->manager, true); + manager_flip_auto_status(u->manager, true, "job failed"); DISABLE_WARNING_FORMAT_NONLITERAL; unit_status_printf(u, status, format); diff --git a/src/core/main.c b/src/core/main.c index 09846eaadb..5302c4d27c 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -711,7 +711,7 @@ static void set_manager_settings(Manager *m) { m->kexec_watchdog = arg_kexec_watchdog; m->cad_burst_action = arg_cad_burst_action; - manager_set_show_status(m, arg_show_status); + manager_set_show_status(m, arg_show_status, "commandline"); m->status_unit_format = arg_status_unit_format; } diff --git a/src/core/manager.c b/src/core/manager.c index 7ccfde1567..feb7b3efd0 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -173,15 +173,15 @@ static void draw_cylon(char buffer[], size_t buflen, unsigned width, unsigned po } } -void manager_flip_auto_status(Manager *m, bool enable) { +void manager_flip_auto_status(Manager *m, bool enable, const char *reason) { assert(m); if (enable) { if (m->show_status == SHOW_STATUS_AUTO) - manager_set_show_status(m, SHOW_STATUS_TEMPORARY); + manager_set_show_status(m, SHOW_STATUS_TEMPORARY, reason); } else { if (m->show_status == SHOW_STATUS_TEMPORARY) - manager_set_show_status(m, SHOW_STATUS_AUTO); + manager_set_show_status(m, SHOW_STATUS_AUTO, reason); } } @@ -198,7 +198,7 @@ static void manager_print_jobs_in_progress(Manager *m) { assert(m); assert(m->n_running_jobs > 0); - manager_flip_auto_status(m, true); + manager_flip_auto_status(m, true, "delay"); print_nr = (m->jobs_in_progress_iteration / JOBS_IN_PROGRESS_PERIOD_DIVISOR) % m->n_running_jobs; @@ -2736,11 +2736,11 @@ static int manager_dispatch_signal_fd(sd_event_source *source, int fd, uint32_t switch (sfsi.ssi_signo - SIGRTMIN) { case 20: - manager_set_show_status(m, SHOW_STATUS_YES); + manager_set_show_status(m, SHOW_STATUS_YES, "signal"); break; case 21: - manager_set_show_status(m, SHOW_STATUS_NO); + manager_set_show_status(m, SHOW_STATUS_NO, "signal"); break; case 22: @@ -3402,7 +3402,7 @@ int manager_deserialize(Manager *m, FILE *f, FDSet *fds) { if (s < 0) log_notice("Failed to parse show-status flag '%s', ignoring.", val); else - manager_set_show_status(m, s); + manager_set_show_status(m, s, "deserialization"); } else if ((val = startswith(l, "log-level-override="))) { int level; @@ -3778,7 +3778,7 @@ void manager_check_finished(Manager *m) { return; } - manager_flip_auto_status(m, false); + manager_flip_auto_status(m, false, "boot finished"); /* Notify Type=idle units that we are done now */ manager_close_idle_pipe(m); @@ -4076,7 +4076,7 @@ void manager_recheck_journal(Manager *m) { log_open(); } -void manager_set_show_status(Manager *m, ShowStatus mode) { +void manager_set_show_status(Manager *m, ShowStatus mode, const char *reason) { assert(m); assert(IN_SET(mode, SHOW_STATUS_AUTO, SHOW_STATUS_NO, SHOW_STATUS_YES, SHOW_STATUS_TEMPORARY)); @@ -4085,9 +4085,10 @@ void manager_set_show_status(Manager *m, ShowStatus mode) { bool enabled = show_status_on(mode); if (mode != m->show_status) - log_debug("%s showing of status (%s).", + log_debug("%s (%s) showing of status (%s).", enabled ? "Enabling" : "Disabling", - strna(show_status_to_string(mode))); + strna(show_status_to_string(mode)), + reason); m->show_status = mode; if (enabled) diff --git a/src/core/manager.h b/src/core/manager.h index 67f9af5fc6..78d2cb5d3f 100644 --- a/src/core/manager.h +++ b/src/core/manager.h @@ -505,11 +505,11 @@ void disable_printk_ratelimit(void); void manager_recheck_dbus(Manager *m); void manager_recheck_journal(Manager *m); -void manager_set_show_status(Manager *m, ShowStatus mode); +void manager_set_show_status(Manager *m, ShowStatus mode, const char *reason); void manager_set_first_boot(Manager *m, bool b); void manager_status_printf(Manager *m, StatusType type, const char *status, const char *format, ...) _printf_(4,5); -void manager_flip_auto_status(Manager *m, bool enable); +void manager_flip_auto_status(Manager *m, bool enable, const char *reason); Set *manager_get_units_requiring_mounts_for(Manager *m, const char *path); |