X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fsystemctl%2Fsystemctl.c;h=e74f18630dba56ef3eaefc9cc41b82b64c13e262;hb=7212a8a99ee863698f5feaa00abb4b99f3996a1a;hp=6ab92cebf0fd34b5ac60766358c34b08666462ee;hpb=c147dc42f8b3383a3ced69aaa75e21df4fe75a96;p=elogind.git diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index 6ab92cebf..e74f18630 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -86,7 +86,6 @@ static bool arg_failed = false; static bool arg_runtime = false; static char **arg_wall = NULL; static const char *arg_kill_who = NULL; -static const char *arg_kill_mode = NULL; static int arg_signal = SIGTERM; static const char *arg_root = NULL; static usec_t arg_when = 0; @@ -658,10 +657,8 @@ static int list_unit_files(DBusConnection *bus, char **args) { Iterator i; h = hashmap_new(string_hash_func, string_compare_func); - if (!h) { - log_error("Out of memory"); - return -ENOMEM; - } + if (!h) + return log_oom(); r = unit_file_get_list(arg_scope, arg_root, h); if (r < 0) { @@ -674,8 +671,7 @@ static int list_unit_files(DBusConnection *bus, char **args) { units = new(UnitFileList, n_units); if (!units) { unit_file_list_free(h); - log_error("Out of memory"); - return -ENOMEM; + return log_oom(); } HASHMAP_FOREACH(u, h, i) { @@ -784,7 +780,7 @@ static int dot_one_property(const char *name, const char *prop, DBusMessageIter "RequiresOverridable", "[color=\"black\"]", "Requisite", "[color=\"darkblue\"]", "RequisiteOverridable", "[color=\"darkblue\"]", - "Wants", "[color=\"darkgrey\"]", + "Wants", "[color=\"grey66\"]", "Conflicts", "[color=\"red\"]", "ConflictedBy", "[color=\"red\"]", "After", "[color=\"green\"]" @@ -2140,9 +2136,6 @@ static int kill_unit(DBusConnection *bus, char **args) { if (!arg_kill_who) arg_kill_who = "all"; - if (!arg_kill_mode) - arg_kill_mode = streq(arg_kill_who, "all") ? "control-group" : "process"; - STRV_FOREACH(name, args+1) { DBusMessage *reply; char *n; @@ -2163,7 +2156,6 @@ static int kill_unit(DBusConnection *bus, char **args) { b = dbus_message_append_args(m, DBUS_TYPE_STRING, n ? &n : name, DBUS_TYPE_STRING, &arg_kill_who, - DBUS_TYPE_STRING, &arg_kill_mode, DBUS_TYPE_INT32, &arg_signal, DBUS_TYPE_INVALID); free(n); @@ -2592,8 +2584,16 @@ static void print_status_info(UnitStatusInfo *i) { } if (i->id && arg_transport != TRANSPORT_SSH) { + int flags = + arg_lines * OUTPUT_SHOW_ALL | + arg_follow * OUTPUT_FOLLOW | + !arg_quiet * OUTPUT_WARN_CUTOFF | + on_tty() * OUTPUT_COLOR; + printf("\n"); - show_journal_by_unit(i->id, arg_output, 0, i->inactive_exit_timestamp_monotonic, arg_lines, arg_all, arg_follow, !arg_quiet); + show_journal_by_unit(i->id, arg_output, 0, + i->inactive_exit_timestamp_monotonic, + arg_lines, flags); } if (i->need_daemon_reload) @@ -2630,14 +2630,14 @@ static void show_unit_help(UnitStatusInfo *i) { if (e) { page = strndup((*p) + 4, e - *p - 4); if (!page) { - log_error("Out of memory."); + log_oom(); return; } section = strndup(e + 1, *p + k - e - 2); if (!section) { free(page); - log_error("Out of memory"); + log_oom(); return; } @@ -3282,10 +3282,8 @@ static int show(DBusConnection *bus, char **args) { n = unit_name_mangle(*name); p = unit_dbus_path_from_name(n ? n : *name); free(n); - if (!p) { - log_error("Out of memory"); - return -ENOMEM; - } + if (!p) + return log_oom(); r = show_one(args[0], bus, p, show_properties, &new_line); free(p); @@ -3298,10 +3296,8 @@ static int show(DBusConnection *bus, char **args) { /* Interpret as job id */ char *p; - if (asprintf(&p, "/org/freedesktop/systemd1/job/%u", id) < 0) { - log_error("Out of memory"); - return -ENOMEM; - } + if (asprintf(&p, "/org/freedesktop/systemd1/job/%u", id) < 0) + return log_oom(); r = show_one(args[0], bus, p, show_properties, &new_line); free(p); @@ -3974,8 +3970,7 @@ static int enable_sysv_units(char **args) { asprintf(&p, "%s/%s", *k, name); if (!p) { - log_error("No memory"); - r = -ENOMEM; + r = log_oom(); goto finish; } @@ -3995,8 +3990,7 @@ static int enable_sysv_units(char **args) { else asprintf(&p, SYSTEM_SYSVINIT_PATH "/%s", name); if (!p) { - log_error("No memory"); - r = -ENOMEM; + r = log_oom(); goto finish; } @@ -4024,10 +4018,9 @@ static int enable_sysv_units(char **args) { l = strv_join((char**)argv, " "); if (!l) { - log_error("No memory."); free(q); free(p); - r = -ENOMEM; + r = log_oom(); goto finish; } @@ -4184,8 +4177,7 @@ static int enable_unit(DBusConnection *bus, char **args) { "org.freedesktop.systemd1.Manager", method); if (!m) { - log_error("Out of memory"); - r = -ENOMEM; + r = log_oom(); goto finish; } @@ -4339,8 +4331,7 @@ static int unit_is_enabled(DBusConnection *bus, char **args) { "org.freedesktop.systemd1.Manager", "GetUnitFileState"); if (!m) { - log_error("Out of memory"); - r = -ENOMEM; + r = log_oom(); goto finish; } @@ -4588,7 +4579,6 @@ static int systemctl_parse_argv(int argc, char *argv[]) { ARG_ROOT, ARG_FULL, ARG_NO_RELOAD, - ARG_KILL_MODE, ARG_KILL_WHO, ARG_NO_ASK_PASSWORD, ARG_FAILED, @@ -4620,7 +4610,6 @@ static int systemctl_parse_argv(int argc, char *argv[]) { { "root", required_argument, NULL, ARG_ROOT }, { "force", no_argument, NULL, ARG_FORCE }, { "no-reload", no_argument, NULL, ARG_NO_RELOAD }, - { "kill-mode", required_argument, NULL, ARG_KILL_MODE }, /* undocumented on purpose */ { "kill-who", required_argument, NULL, ARG_KILL_WHO }, { "signal", required_argument, NULL, 's' }, { "no-ask-password", no_argument, NULL, ARG_NO_ASK_PASSWORD }, @@ -4766,10 +4755,6 @@ static int systemctl_parse_argv(int argc, char *argv[]) { arg_kill_who = optarg; break; - case ARG_KILL_MODE: - arg_kill_mode = optarg; - break; - case 's': if ((arg_signal = signal_from_string_try_harder(optarg)) < 0) { log_error("Failed to parse signal string %s.", optarg); @@ -5647,7 +5632,7 @@ done: return 0; } -static void halt_now(enum action a) { +static _noreturn_ void halt_now(enum action a) { /* Make sure C-A-D is handled by the kernel from this * point on... */