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.
This commit is contained in:
parent
fe0272999c
commit
304b3079a2
4
TODO
4
TODO
|
@ -149,10 +149,6 @@ Features:
|
||||||
that are not supported...
|
that are not supported...
|
||||||
http://lists.freedesktop.org/archives/systemd-devel/2015-February/028076.html
|
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
|
* Introduce $LISTEN_NAMES to complement $LISTEN_FDS, containing a
|
||||||
colon separated list of identifiers for the fds passed.
|
colon separated list of identifiers for the fds passed.
|
||||||
|
|
||||||
|
|
|
@ -1618,7 +1618,7 @@ int main(int argc, char *argv[]) {
|
||||||
bump_rlimit_nofile(&saved_rlimit_nofile);
|
bump_rlimit_nofile(&saved_rlimit_nofile);
|
||||||
|
|
||||||
if (empty_etc) {
|
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)
|
if (r < 0)
|
||||||
log_warning_errno(r, "Failed to populate /etc with preset unit settings, ignoring: %m");
|
log_warning_errno(r, "Failed to populate /etc with preset unit settings, ignoring: %m");
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue