Skip to content

Commit

Permalink
core: Execute first boot presets in an enable-only preset-mode.
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
Dimitri John Ledkov authored and poettering committed May 15, 2015
1 parent fe02729 commit 304b307
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 5 deletions.
4 changes: 0 additions & 4 deletions TODO
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down
2 changes: 1 addition & 1 deletion src/core/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 304b307

Please sign in to comment.