X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fsystemctl.c;h=e49c5b8671c3af9c4e5a5e51bdc2e3e5536bd8e2;hb=77d98d666a4ef24ef22f032476fd5d954c1a4699;hp=1640a60a70960131fc91a3adc9015665f4bb26a9;hpb=d5ca5f11857e87524f0b75a0959a74404f707f1a;p=elogind.git diff --git a/src/systemctl.c b/src/systemctl.c index 1640a60a7..e49c5b867 100644 --- a/src/systemctl.c +++ b/src/systemctl.c @@ -311,6 +311,7 @@ static int dot_one_property(const char *name, const char *prop, DBusMessageIter "RequisiteOverridable", "[color=\"darkblue\"]", "Wants", "[color=\"darkgrey\"]", "Conflicts", "[color=\"red\"]", + "ConflictedBy", "[color=\"red\"]", "After", "[color=\"green\"]" }; @@ -489,7 +490,7 @@ static int dot(DBusConnection *bus, char **args, unsigned n) { dbus_message_iter_recurse(&iter, &sub); while (dbus_message_iter_get_arg_type(&sub) != DBUS_TYPE_INVALID) { - const char *id, *description, *load_state, *active_state, *sub_state, *unit_path; + const char *id, *description, *load_state, *active_state, *sub_state, *following, *unit_path; if (dbus_message_iter_get_arg_type(&sub) != DBUS_TYPE_STRUCT) { log_error("Failed to parse reply."); @@ -504,6 +505,7 @@ static int dot(DBusConnection *bus, char **args, unsigned n) { bus_iter_get_basic_and_next(&sub2, DBUS_TYPE_STRING, &load_state, true) < 0 || bus_iter_get_basic_and_next(&sub2, DBUS_TYPE_STRING, &active_state, true) < 0 || bus_iter_get_basic_and_next(&sub2, DBUS_TYPE_STRING, &sub_state, true) < 0 || + bus_iter_get_basic_and_next(&sub2, DBUS_TYPE_STRING, &following, true) < 0 || bus_iter_get_basic_and_next(&sub2, DBUS_TYPE_OBJECT_PATH, &unit_path, true) < 0) { log_error("Failed to parse reply."); r = -EIO; @@ -1528,14 +1530,15 @@ static void print_status_info(UnitStatusInfo *i) { printf(" (%s)", t); free(t); } - } else { + } else if (i->exit_code > 0) { printf(" (code=%s, ", sigchld_code_to_string(i->exit_code)); if (i->exit_code == CLD_EXITED) printf("status=%i", i->exit_status); else printf("signal=%s", signal_to_string(i->exit_status)); - printf(")"); } + printf(")"); + } } if (i->main_pid > 0 && i->control_pid > 0) @@ -3933,7 +3936,8 @@ static int halt_parse_argv(int argc, char *argv[]) { break; case 'p': - arg_action = ACTION_POWEROFF; + if (arg_action != ACTION_REBOOT) + arg_action = ACTION_POWEROFF; break; case ARG_REBOOT: