From 6d7127d6dd0f3cfdf94d942f33ea9c3a783d887f Mon Sep 17 00:00:00 2001 From: Ludwig Nussel Date: Wed, 9 Feb 2022 10:59:22 +0100 Subject: [PATCH] systemctl: improve error messages related to halt failures --- src/systemctl/systemctl-compat-halt.c | 3 ++- src/systemctl/systemctl-compat-telinit.c | 8 +++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/systemctl/systemctl-compat-halt.c b/src/systemctl/systemctl-compat-halt.c index c8d745592f..8a0e4e6294 100644 --- a/src/systemctl/systemctl-compat-halt.c +++ b/src/systemctl/systemctl-compat-halt.c @@ -76,6 +76,7 @@ int halt_parse_argv(int argc, char *argv[]) { assert(argc >= 0); assert(argv); + /* called in sysvinit system as last command in shutdown/reboot so this is always forceful */ if (utmp_get_runlevel(&runlevel, NULL) >= 0) if (IN_SET(runlevel, '0', '6')) arg_force = 2; @@ -191,5 +192,5 @@ int halt_main(void) { return 0; r = halt_now(arg_action); - return log_error_errno(r, "Failed to reboot: %m"); + return log_error_errno(r, "Failed to %s: %m", action_table[arg_action].verb); } diff --git a/src/systemctl/systemctl-compat-telinit.c b/src/systemctl/systemctl-compat-telinit.c index c81e9bc3ce..0890d6544f 100644 --- a/src/systemctl/systemctl-compat-telinit.c +++ b/src/systemctl/systemctl-compat-telinit.c @@ -125,8 +125,11 @@ int telinit_parse_argv(int argc, char *argv[]) { } int start_with_fallback(void) { + int r; + /* First, try systemd via D-Bus. */ - if (start_unit(0, NULL, NULL) == 0) + r = start_unit(0, NULL, NULL); + if (r == 0) return 0; #if HAVE_SYSV_COMPAT @@ -135,8 +138,7 @@ int start_with_fallback(void) { return 0; #endif - return log_error_errno(SYNTHETIC_ERRNO(EIO), - "Failed to talk to init daemon."); + return log_error_errno(r, "Failed to talk to init daemon: %m"); } int reload_with_fallback(void) { -- 2.25.1