chiark / gitweb /
logind: explicitly create state directories during early initialization
[elogind.git] / src / login / logind.c
index bb34a7f362da421e70183cf6a93cc1a1811012dc..f72aac5e61941bb49ea8e98a2f1d3cec99a578a4 100644 (file)
@@ -37,6 +37,7 @@
 #include "dbus-loop.h"
 #include "strv.h"
 #include "conf-parser.h"
+#include "mkdir.h"
 
 Manager *manager_new(void) {
         Manager *m;
@@ -1727,6 +1728,15 @@ int main(int argc, char *argv[]) {
                 goto finish;
         }
 
+        /* Always create the directories people can create inotify
+         * watches in. Note that some applications might check for the
+         * existance of /run/systemd/seats/ to determine whether
+         * logind is available, so please always make sure this check
+         * stays in. */
+        mkdir_label("/run/systemd/seats", 0755);
+        mkdir_label("/run/systemd/users", 0755);
+        mkdir_label("/run/systemd/sessions", 0755);
+
         m = manager_new();
         if (!m) {
                 r = log_oom();