chiark / gitweb /
manager: no need to use randomized generator dir when running as system manager
authorLennart Poettering <lennart@poettering.net>
Thu, 7 Apr 2011 19:22:41 +0000 (21:22 +0200)
committerLennart Poettering <lennart@poettering.net>
Thu, 7 Apr 2011 19:22:41 +0000 (21:22 +0200)
TODO
src/manager.c
src/mount-setup.c

diff --git a/TODO b/TODO
index af264d3..5a3944f 100644 (file)
--- a/TODO
+++ b/TODO
@@ -2,9 +2,6 @@ F15:
 
 * swap units that are activated by one name but shown in the kernel under another are semi-broken
 
-* isolate multi-user.target doesn't start a getty@tty1 if we run it from graphical.target
-   https://bugzilla.redhat.com/show_bug.cgi?id=688661
-
 * NFS, networkmanager ordering issue (PENDING)
 
 * NM should pull in network.target (PENDING)
@@ -24,6 +21,8 @@ F15:
 * 0595f9a1c182a84581749823ef47c5f292e545f9 is borked, freezes shutdown
     (path: after installing inotify watches, recheck file again to fix race)
 
+* active_enter timestamps borked?
+
 Features:
 
 * fix alsa mixer restore to not print error when no config is stored
@@ -31,8 +30,6 @@ Features:
 * don't trim empty cgroups
   https://bugzilla.redhat.com/show_bug.cgi?id=678555
 
-* serialize used job ids and max job id
-
 * show enablement status in systemctl status
 
 * expose monotonic timestamps on the bus and make systemd-analyze use it
@@ -74,9 +71,6 @@ Features:
 
 * when key file cannot be found, read it from kbd in cryptsetup
 
-* get rid of random file name in generator directory?
-    /run/systemd/generator-IH1vFu
-
 * add switch to systemctl to show enabled but not running services. Or
   another switch that shows service that have been running since
   booting but aren't running anymore.
index 5cb3588..ad627fc 100644 (file)
@@ -2920,13 +2920,22 @@ void manager_run_generators(Manager *m) {
         }
 
         if (!m->generator_unit_path) {
-                char *p;
-                char system_path[] = "/run/systemd/generator-XXXXXX",
-                        user_path[] = "/tmp/systemd-generator-XXXXXX";
+                const char *p;
+                char user_path[] = "/tmp/systemd-generator-XXXXXX";
 
-                if (!(p = mkdtemp(m->running_as == MANAGER_SYSTEM ? system_path : user_path))) {
-                        log_error("Failed to generate generator directory: %m");
-                        goto finish;
+                if (m->running_as == MANAGER_SYSTEM) {
+                        p = "/run/systemd/generator";
+
+                        if (mkdir_p(p, 0755) < 0) {
+                                log_error("Failed to create generator directory: %m");
+                                goto finish;
+                        }
+
+                } else {
+                        if (!(p = mkdtemp(user_path))) {
+                                log_error("Failed to create generator directory: %m");
+                                goto finish;
+                        }
                 }
 
                 if (!(m->generator_unit_path = strdup(p))) {
index 4fa8ae5..8520583 100644 (file)
@@ -242,22 +242,22 @@ int mount_setup(void) {
                 if ((r = mount_one(mount_table+i)) < 0)
                         return r;
 
-        /* Nodes in devtmpfs need to be manually updated for the
-         * appropriate labels, after mounting. The other virtual API
-         * file systems do not need that. */
-
+        /* Nodes in devtmpfs and /run need to be manually updated for
+         * the appropriate labels, after mounting. The other virtual
+         * API file systems like /sys and /proc do not need that, they
+         * use the same label for all their files. */
         if (unlink("/dev/.systemd-relabel-run-dev") >= 0) {
                 nftw("/dev", nftw_cb, 64, FTW_MOUNT|FTW_PHYS);
                 nftw("/run", nftw_cb, 64, FTW_MOUNT|FTW_PHYS);
         }
 
         /* Create a few default symlinks, which are normally created
-         * bei udevd, but some scripts might need them before we start
+         * by udevd, but some scripts might need them before we start
          * udevd. */
-
         NULSTR_FOREACH_PAIR(j, k, symlinks)
                 symlink_and_label(j, k);
 
+
         /* Create a few directories we always want around */
         mkdir("/run/systemd", 0755);
         mkdir("/run/systemd/ask-password", 0755);