[systemd-devel] [PATCH] systemctl: improve readability on failed commands

Zbigniew Jędrzejewski-Szmek zbyszek at in.waw.pl
Thu Jan 2 16:26:58 PST 2014


On Fri, Jan 03, 2014 at 12:37:32AM +0100, Thomas H.P. Andersen wrote:
> From: Thomas Hindoe Paaboel Andersen <phomes at gmail.com>
> 
> Not long ago a failed command would print:
> "Failed to start something.service: ..."
> regardless of whether the command was to start/stop/restart/etc.
> 
> With e3e0314 this was improved to print the method used. E.g. for stopping:
> "Failed to StopUnit something.service: ..."
> 
> This patch matches the method to a more human readable word. E.g:
> "Failed to stop something.service: ..."
> ---
>  src/systemctl/systemctl.c | 14 +++++++++++++-
>  1 file changed, 13 insertions(+), 1 deletion(-)
> 
> diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c
> index 67bc426..0b50813 100644
> --- a/src/systemctl/systemctl.c
> +++ b/src/systemctl/systemctl.c
> @@ -2067,12 +2067,24 @@ static int start_unit_one(
>                          &reply,
>                          "ss", name, mode);
>          if (r < 0) {
> +                const char *command;
> +
>                  if (r == -ENOENT && arg_action != ACTION_SYSTEMCTL)
>                          /* There's always a fallback possible for
>                           * legacy actions. */
>                          return -EADDRNOTAVAIL;
>  
> -                log_error("Failed to %s %s: %s", method, name, bus_error_message(error, r));
> +                command =
> +                        streq(method, "StartUnit")              ? "start" :
> +                        streq(method, "StopUnit")               ? "stop" :
> +                        streq(method, "ReloadUnit")             ? "reload" :
> +                        streq(method, "RestartUnit")            ? "restart" :
> +                        streq(method, "TryRestartUnit")         ? "try-restart" :
> +                        streq(method, "ReloadOrRestartUnit")    ? "reload-or-restart" :
> +                        streq(method, "ReloadOrTryRestartUnit") ? "reload-or-try-restart" :
> +                        method;
Hm, we have the opposite mapping done by hand in parse_argv too...
Maybe we could coalesce those two into a single table? I think
reduce the chances of them getting out of sync.

Zbyszek


More information about the systemd-devel mailing list