X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fsystemctl.c;h=03143379030cf2d7e10213a6fc071dfe8d530262;hb=83bda35801aa3d7ed180ec374a4bcdfe9dc1a8e4;hp=bb831adb5c3b09ab3be7f342d4b2e94c713aafc5;hpb=ab35fb1bc68625c891a19a66473a9c40ca12e69d;p=elogind.git diff --git a/src/systemctl.c b/src/systemctl.c index bb831adb5..031433790 100644 --- a/src/systemctl.c +++ b/src/systemctl.c @@ -110,30 +110,6 @@ static int bus_iter_get_basic_and_next(DBusMessageIter *iter, int type, void *da return 0; } -static int columns(void) { - static int parsed_columns = 0; - const char *e; - - if (parsed_columns > 0) - return parsed_columns; - - if ((e = getenv("COLUMNS"))) - parsed_columns = atoi(e); - - if (parsed_columns <= 0) { - struct winsize ws; - zero(ws); - - if (ioctl(STDIN_FILENO, TIOCGWINSZ, &ws) >= 0) - parsed_columns = ws.ws_col; - } - - if (parsed_columns <= 0) - parsed_columns = 80; - - return parsed_columns; -} - static void warn_wall(enum action action) { static const char *table[_ACTION_MAX] = { [ACTION_HALT] = "The system is going down for system halt NOW!", @@ -1076,7 +1052,7 @@ static void print_status_info(UnitStatusInfo *i) { else c = 0; - show_cgroup(i->default_control_group, "\t\t ", c); + show_cgroup_recursive(i->default_control_group, "\t\t ", c); } } @@ -3068,7 +3044,7 @@ static int systemctl_main(DBusConnection *bus, int argc, char *argv[]) { { "reboot", EQUAL, 1, start_special }, { "default", EQUAL, 1, start_special }, { "rescue", EQUAL, 1, start_special }, - { "emergency", EQUAL, 1, start_special }, + { "emergency", EQUAL, 1, start_special } }; int left; @@ -3180,7 +3156,12 @@ static int start_with_fallback(DBusConnection *bus) { static int halt_main(DBusConnection *bus) { int r; - if (!arg_immediate) + if (geteuid() != 0) { + log_error("Must to be root."); + return -EPERM; + } + + if (!arg_dry && !arg_immediate) return start_with_fallback(bus); if (!arg_no_wtmp)