summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2011-04-07 21:22:41 +0200
committerLennart Poettering <lennart@poettering.net>2011-04-07 21:22:41 +0200
commitf1d19aa412b34fe025dfd48a5c79d34fdd0f9528 (patch)
tree1eb5022ac5e821f13dd77003843619c1ecefd116
parent20c03b7be2c87ef54533db849fd046d7014c36b4 (diff)
manager: no need to use randomized generator dir when running as system manager
-rw-r--r--TODO10
-rw-r--r--src/manager.c21
-rw-r--r--src/mount-setup.c12
3 files changed, 23 insertions, 20 deletions
diff --git a/TODO b/TODO
index af264d3a20..5a3944fe0c 100644
--- 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.
diff --git a/src/manager.c b/src/manager.c
index 5cb3588c94..ad627fc669 100644
--- a/src/manager.c
+++ b/src/manager.c
@@ -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))) {
diff --git a/src/mount-setup.c b/src/mount-setup.c
index 4fa8ae5fba..85205832a9 100644
--- a/src/mount-setup.c
+++ b/src/mount-setup.c
@@ -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);