From: Ludwig Nussel Date: Wed, 9 Feb 2022 09:59:22 +0000 (+0100) Subject: systemctl: improve error messages related to halt failures X-Git-Tag: v251-rc1~248 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6d7127d6dd0f3cfdf94d942f33ea9c3a783d887f;p=thirdparty%2Fsystemd.git systemctl: improve error messages related to halt failures --- diff --git a/src/systemctl/systemctl-compat-halt.c b/src/systemctl/systemctl-compat-halt.c index c8d745592fd..8a0e4e62943 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 c81e9bc3ce3..0890d6544f6 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) {