@@ -118,28 +118,25 @@ But out of conservatism currently today for e.g. Fedora CoreOS, bootupd is disab
118
118
by default. On the other hand, if your OS update mechanism isn't transactional,
119
119
then you may want to enable bootupd by default.
120
120
121
- - Why is bootupd a daemon?
122
-
123
- It's not, really. The name was intended to be "bootloader-upDater"
124
- not "bootloader-updater-Daemon"; the choice of a "d" suffix is
125
- in retrospect probably too confusing.
126
-
127
- At a technical level, yes there is a socket-activated systemd service
128
- which will spawn a ` bootupd.service ` . However - the service will
129
- * very quickly* auto exit. There's nothing long-running, so it's
130
- not really a daemon.
131
-
132
- The rationale behind this design is:
133
-
134
- - Using a systemd service provides a robust natural "locking"
135
- mechanism.
136
- - Using a systemd service ensures that critical logging metadata
137
- always consistently ends up in the systemd journal, not e.g.
138
- a transient client SSH connection.
139
- - systemd services can easily have sandboxing applied, and
140
- while bootupd is obviously privileged we can still make use
141
- of some of this.
142
- - Ultimately, we do probably want a non-CLI API (whether that's
143
- DBus or Cap'n Proto or varlink or something else). Having
144
- a socket (without a defined stable API) is preparatory work for that.
121
+ - Is bootupd a daemon?
122
+
123
+ It was never a daemon. The name was intended to be "bootloader-upDater" not
124
+ "bootloader-updater-Daemon". The choice of a "d" suffix is in retrospect
125
+ probably too confusing.
126
+
127
+ bootupd used to have an internally-facing ` bootupd.service ` and
128
+ ` bootupd.socket ` systemd units that acted as a locking mechanism. The service
129
+ would * very quickly* auto exit. There was nothing long-running, so it was not
130
+ really a daemon.
131
+
132
+ bootupd now uses ` systemd-run ` instead to guarantee the following:
133
+
134
+ - It provides a robust natural "locking" mechanism.
135
+ - It ensures that critical logging metadata always consistently ends up in the
136
+ systemd journal, not e.g. a transient client SSH connection.
137
+ - It benefits from the sandboxing options available for systemd units, and
138
+ while bootupd is obviously privileged we can still make use of some of this.
139
+ - If we want a non-CLI API (whether that's DBus or Cap'n Proto or varlink or
140
+ something else), we will create an independent daemon with a stable API for
141
+ this specific need.
145
142
0 commit comments