summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri John Ledkov <dimitri.j.ledkov@intel.com>2015-05-15 11:44:22 +0100
committerLennart Poettering <lennart@poettering.net>2015-05-15 12:49:33 +0200
commit304b3079a2039971db6d89f4557931776b758e41 (patch)
tree75b09022e91c461dd4312a1f2c9179a139f68346
parentfe0272999c8ef7961a446a7743f824ba4cfe0918 (diff)
core: Execute first boot presets in an enable-only preset-mode.
This means any existing enabled units well be preserved and no pre-created symlinks will be removed. This is done on first boot, when the assumption is that /etc is not populated at all (no machine-id setup). For minimal containers that gives a significant first boot speed up, approximately ~20ms / ~16% in my trials.
-rw-r--r--TODO4
-rw-r--r--src/core/main.c2
2 files changed, 1 insertions, 5 deletions
diff --git a/TODO b/TODO
index 932fef643..dd85f5747 100644
--- a/TODO
+++ b/TODO
@@ -149,10 +149,6 @@ Features:
that are not supported...
http://lists.freedesktop.org/archives/systemd-devel/2015-February/028076.html
-* PID 1: when invoking systemctl preset-all on first boots, operate in
- an exclusively additive way, i.e. never remove any pre-existing
- symlinks, only add new ones.
-
* Introduce $LISTEN_NAMES to complement $LISTEN_FDS, containing a
colon separated list of identifiers for the fds passed.
diff --git a/src/core/main.c b/src/core/main.c
index 08e84d830..c39815b10 100644
--- a/src/core/main.c
+++ b/src/core/main.c
@@ -1618,7 +1618,7 @@ int main(int argc, char *argv[]) {
bump_rlimit_nofile(&saved_rlimit_nofile);
if (empty_etc) {
- r = unit_file_preset_all(UNIT_FILE_SYSTEM, false, NULL, UNIT_FILE_PRESET_FULL, false, NULL, 0);
+ r = unit_file_preset_all(UNIT_FILE_SYSTEM, false, NULL, UNIT_FILE_PRESET_ENABLE_ONLY, false, NULL, 0);
if (r < 0)
log_warning_errno(r, "Failed to populate /etc with preset unit settings, ignoring: %m");
else