chiark / gitweb /
Add mounting of a name=elogind cgroup if no init controller is found.
[elogind.git] / src / login / logind.c
index 8748490f45f65eea1f864a1a4b36043c07e0034e..23f4059931d456f192112f3e3e9a8ef6a457bf61 100644 (file)
@@ -36,6 +36,7 @@
 #include "label.h"
 #include "label.h"
 #include "cgroup.h"
+#include "mount-setup.h"
 #include "virt.h"
 
 static void manager_free(Manager *m);
@@ -95,6 +96,13 @@ static Manager *manager_new(void) {
         if (!m->kill_exclude_users)
                 goto fail;
 
+        /* If elogind should be its own controller, mount its cgroup */
+        if (streq(ELOGIND_CGROUP_CONTROLLER, "name=elogind")) {
+                r = mount_setup(true);
+                if (r < 0)
+                        goto fail;
+        }
+
         /* Make cgroups */
         r = manager_setup_cgroup(m);
         if (r < 0)
@@ -1230,6 +1238,7 @@ int main(int argc, char *argv[]) {
         Manager *m = NULL;
         int r;
 
+        elogind_set_program_name(argv[0]);
         log_set_target(LOG_TARGET_AUTO);
         log_set_facility(LOG_AUTH);
         log_parse_environment();