chiark / gitweb /
journald: avoid logging to kmsg in the normal paths
[elogind.git] / src / core / main.c
index 3c0f5f9a94d7c11121059ed7fb4608ae93a6324d..7b5c86161fe512525c5e947faf34c936b5c954d1 100644 (file)
@@ -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);