fsckd daemon for inter-fsckd communication
authorDidier Roche <didrocks@ubuntu.com>
Fri, 22 May 2015 11:04:38 +0000 (13:04 +0200)
committerMichael Biebl <biebl@debian.org>
Sat, 25 Sep 2021 20:01:17 +0000 (21:01 +0100)
commit9c7fbea1086cbafb845c85871389f5278bfd0787
tree1674c6b8f45ea3bc5c406e230254b55955fc4f4e
parentfc6d8f14c419e81b49eecf7bbbb052148c898d3f
fsckd daemon for inter-fsckd communication

Global logic:
Add systemd-fsckd multiplexer which accepts multiple (via systemd-fsck's
/run/systemd/fsck.progress socket) fsck instances to connect to it and sends
progress report. systemd-fsckd then computes and writes to /dev/console the
number of devices currently being checked and the minimum fsck progress.

Plymouth and user interaction:
Forward the progress to plymouth and support canellation of in progress fsck.
Try to connect and send to plymouth (if running) some checked report progress,
using direct plymouth protocole.

Update message is the following:
fsckd:<num_devices>:<progress>:<string>
* num_devices corresponds to the current number of devices being checked (int)
* progress corresponds to the current minimum percentage of all devices being
  checked (float, from 0 to 100)
* string is a translated message ready to be displayed by the plymouth theme
  displaying the information above. It can be overridden by plymouth themes
  supporting i18n.

Grab in fsckd plymouth watch key Control+C, and propagate this cancel request
to systemd-fsck which will terminate fsck.

Send a message to signal to user what key we are grabbing for fsck cancel.

Message is: fsckd-cancel-msg:<string>
Where string is a translated string ready to be displayed by the plymouth theme
indicating that Control+C can be used to cancel current checks. It can be
overridden (matching only fsckd-cancel-msg prefix) for themes supporting i18n.

Misc:
systemd-fsckd stops on idle when no fsck is connected.
Add man page explaining the plymouth theme protocol, usage of the daemon
as well as the socket activation part. Adapt existing fsck man page.

Note that fsckd had lived in the upstream tree for a while, but was removed.
More information at
http://lists.freedesktop.org/archives/systemd-devel/2015-April/030175.html
-

Gbp-Pq: Topic debian
Gbp-Pq: Name fsckd-daemon-for-inter-fsckd-communication.patch
man/rules/meson.build
man/systemd-fsckd.service.xml [new file with mode: 0644]
meson.build
po/POTFILES.in
src/fsckd/fsckd.c [new file with mode: 0644]
units/meson.build
units/systemd-fsck-root.service.in
units/systemd-fsck@.service.in
units/systemd-fsckd.service.in [new file with mode: 0644]
units/systemd-fsckd.socket [new file with mode: 0644]