X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fsystemctl.c;h=4218a22b97b0fd3621d303faaaac1135bbb9e9f5;hb=f057408c9c3b54b6eeb96cd9f0a1333f30610614;hp=d1892e4ae05bfdd27ebe0716faf20a16c094416c;hpb=983d9c90151f4b85301bd8078afd560269e75961;p=elogind.git diff --git a/src/systemctl.c b/src/systemctl.c index d1892e4ae..4218a22b9 100644 --- a/src/systemctl.c +++ b/src/systemctl.c @@ -720,7 +720,7 @@ static int start_unit(DBusConnection *bus, char **args, unsigned n) { [ACTION_RUNLEVEL4] = SPECIAL_RUNLEVEL4_TARGET, [ACTION_RUNLEVEL5] = SPECIAL_RUNLEVEL5_TARGET, [ACTION_RESCUE] = SPECIAL_RESCUE_TARGET, - [ACTION_EMERGENCY] = SPECIAL_EMERGENCY_SERVICE, + [ACTION_EMERGENCY] = SPECIAL_EMERGENCY_TARGET, [ACTION_DEFAULT] = SPECIAL_DEFAULT_TARGET }; @@ -933,6 +933,8 @@ typedef struct ExecStatusInfo { char *path; char **argv; + bool ignore; + usec_t start_timestamp; usec_t exit_timestamp; pid_t pid; @@ -957,6 +959,7 @@ static int exec_status_info_deserialize(DBusMessageIter *sub, ExecStatusInfo *i) unsigned n; uint32_t pid; int32_t code, status; + dbus_bool_t ignore; assert(i); assert(i); @@ -1002,6 +1005,7 @@ static int exec_status_info_deserialize(DBusMessageIter *sub, ExecStatusInfo *i) } if (!dbus_message_iter_next(&sub2) || + bus_iter_get_basic_and_next(&sub2, DBUS_TYPE_BOOLEAN, &ignore, true) < 0 || bus_iter_get_basic_and_next(&sub2, DBUS_TYPE_UINT64, &start_timestamp, true) < 0 || bus_iter_get_basic_and_next(&sub2, DBUS_TYPE_UINT64, &exit_timestamp, true) < 0 || bus_iter_get_basic_and_next(&sub2, DBUS_TYPE_UINT32, &pid, true) < 0 || @@ -1009,6 +1013,7 @@ static int exec_status_info_deserialize(DBusMessageIter *sub, ExecStatusInfo *i) bus_iter_get_basic_and_next(&sub2, DBUS_TYPE_INT32, &status, false) < 0) return -EIO; + i->ignore = ignore; i->start_timestamp = (usec_t) start_timestamp; i->exit_timestamp = (usec_t) exit_timestamp; i->pid = (pid_t) pid; @@ -1059,7 +1064,6 @@ typedef struct UnitStatusInfo { static void print_status_info(UnitStatusInfo *i) { ExecStatusInfo *p; - int r; assert(i); @@ -1190,10 +1194,7 @@ static void print_status_info(UnitStatusInfo *i) { else c = 0; - if ((r = cg_init()) < 0) - log_error("Failed to initialize libcg: %s", strerror(-r)); - else - show_cgroup_recursive(i->default_control_group, "\t\t ", c); + show_cgroup_by_path(i->default_control_group, "\t\t ", c); } } @@ -1535,10 +1536,11 @@ static int print_property(const char *name, DBusMessageIter *iter) { t = strv_join(info.argv, " "); - printf("%s={ path=%s ; argv[]=%s; start_time=[%s] ; stop_time=[%s] ; pid=%u ; code=%s ; status=%i%s%s }\n", + printf("%s={ path=%s ; argv[]=%s ; ignore=%s ; start_time=[%s] ; stop_time=[%s] ; pid=%u ; code=%s ; status=%i%s%s }\n", name, strna(info.path), strna(t), + yes_no(info.ignore), strna(format_timestamp(timestamp1, sizeof(timestamp1), info.start_timestamp)), strna(format_timestamp(timestamp2, sizeof(timestamp2), info.exit_timestamp)), (unsigned) info. pid,