X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Ffailure-action.c;h=ce522a4e4fee33244a80004c8b333f39f1da1594;hb=609c3029076da1ba423673161e5d0fc82ccca6b6;hp=941747429f8b3468fa3f36f0fce5649d0d00cbd1;hpb=f07756bfe25c64119704c93a634162d6c88b5c89;p=elogind.git diff --git a/src/core/failure-action.c b/src/core/failure-action.c index 941747429..ce522a4e4 100644 --- a/src/core/failure-action.c +++ b/src/core/failure-action.c @@ -29,6 +29,13 @@ #include "special.h" #include "failure-action.h" +static void log_and_status(Manager *m, const char *message) { + log_warning("%s", message); + manager_status_printf(m, STATUS_TYPE_EMERGENCY, + ANSI_HIGHLIGHT_RED_ON " !! " ANSI_HIGHLIGHT_OFF, + "%s", message); +} + int failure_action( Manager *m, FailureAction action, @@ -57,7 +64,7 @@ int failure_action( case FAILURE_ACTION_REBOOT: { _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; - log_warning("Rebooting as result of failure."); + log_and_status(m, "Rebooting as result of failure."); update_reboot_param_file(reboot_arg); r = manager_add_job_by_name(m, JOB_START, SPECIAL_REBOOT_TARGET, JOB_REPLACE, true, &error, NULL); @@ -68,13 +75,14 @@ int failure_action( } case FAILURE_ACTION_REBOOT_FORCE: - log_warning("Forcibly rebooting as result of failure."); + log_and_status(m, "Forcibly rebooting as result of failure."); + update_reboot_param_file(reboot_arg); m->exit_code = MANAGER_REBOOT; break; case FAILURE_ACTION_REBOOT_IMMEDIATE: - log_warning("Rebooting immediately as result of failure."); + log_and_status(m, "Rebooting immediately as result of failure."); sync(); @@ -90,7 +98,7 @@ int failure_action( case FAILURE_ACTION_POWEROFF: { _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; - log_warning("Powering off as result of failure."); + log_and_status(m, "Powering off as result of failure."); r = manager_add_job_by_name(m, JOB_START, SPECIAL_POWEROFF_TARGET, JOB_REPLACE, true, &error, NULL); if (r < 0) @@ -100,12 +108,12 @@ int failure_action( } case FAILURE_ACTION_POWEROFF_FORCE: - log_warning("Forcibly powering off as result of failure."); + log_and_status(m, "Forcibly powering off as result of failure."); m->exit_code = MANAGER_POWEROFF; break; case FAILURE_ACTION_POWEROFF_IMMEDIATE: - log_warning("Powering off immediately as result of failure."); + log_and_status(m, "Powering off immediately as result of failure."); sync();