X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fmain.c;h=7b5c86161fe512525c5e947faf34c936b5c954d1;hb=2b43f939a4b3ad5aeb2650868b0234ff42ec0045;hp=3c0f5f9a94d7c11121059ed7fb4608ae93a6324d;hpb=1421211924ff05af3b0c0d52f1c84472d0307456;p=elogind.git diff --git a/src/core/main.c b/src/core/main.c index 3c0f5f9a9..7b5c86161 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -727,12 +727,13 @@ static int parse_proc_cmdline(void) { } r = parse_proc_cmdline_word(word); - free(word); - if (r < 0) { log_error("Failed on cmdline argument %s: %s", word, strerror(-r)); + free(word); goto finish; } + + free(word); } r = 0; @@ -1297,18 +1298,20 @@ int main(int argc, char *argv[]) { } /* Initialize default unit */ - if (r == set_default_unit(SPECIAL_DEFAULT_TARGET) < 0) { + r = set_default_unit(SPECIAL_DEFAULT_TARGET); + if (r < 0) { log_error("Failed to set default unit %s: %s", SPECIAL_DEFAULT_TARGET, strerror(-r)); goto finish; } /* By default, mount "cpu" and "cpuacct" together */ - arg_join_controllers = new(char**, 2); + arg_join_controllers = new(char**, 3); if (!arg_join_controllers) goto finish; - arg_join_controllers[0] = strv_new("cpu", "cpuacct", NULL); - arg_join_controllers[1] = NULL; + arg_join_controllers[0] = strv_new("cpu", "cpuacct", "cpuset", NULL); + arg_join_controllers[1] = strv_new("net_cls", "netprio", NULL); + arg_join_controllers[2] = NULL; if (!arg_join_controllers[0]) goto finish; @@ -1508,11 +1511,11 @@ int main(int argc, char *argv[]) { if (arg_running_as == MANAGER_USER) { /* Become reaper of our children */ - r = prctl(PR_SET_CHILD_SUBREAPER, 1); - if (r < 0) - log_error("Failed to prctl(PR_SET_CHILD_SUBREAPER): %s", strerror(-r)); - if (r == -EINVAL) - log_error("Perhaps the kernel version is too old (< 3.4?)"); + if (prctl(PR_SET_CHILD_SUBREAPER, 1) < 0) { + log_warning("Failed to make us a subreaper: %m"); + if (errno == EINVAL) + log_info("Perhaps the kernel version is too old (< 3.4?)"); + } } r = manager_new(arg_running_as, &m);