Commit Graph
18 Commits
Author SHA1 Message Date
Didier Roche e26169bd48 fsckd: check if plymouth is running before attempting connection 2015-03-16 18:30:20 +01:00
Didier Roche 186c9f993a fsckd: Don't use strjoina on gettext() call 2015-03-16 18:30:20 +01:00
Didier Roche 54bcf1557c fsckd: clean up log messages
Avoid double logs printing. Not that we don't return
manager_update_global_progress() to the handler callback as if the console or
plymouth isn't available momentarily, we still desire to handle future
fd progress events if those are available again (like cancellation, reports…)
2015-03-10 11:45:54 +01:00
Didier Roche 867ce6a516 fsckd: Reduce the SAK window when writing to console
We don't want to keep /dev/console open all the time, but only open it when
needed, to avoid interfering with SAK.
2015-03-10 11:43:09 +01:00
Didier Roche 89ea179b60 Add mock fsck process 2015-02-18 16:33:46 +01:00
Didier Roche a80170f55c Add man page and references to it.
Add man page explaining the plymouth theme protocol, usage of the daemon
as well as the socket activation part.
Adapt existing fsck man page.
2015-02-18 16:33:46 +01:00
Didier Roche 66f2ff06ca Add fsckd service and socket, retarget systemd-fsck
systemd-fsckd can be socket-activated by systemd-fsck process. Reflect that
in the different unit files.
2015-02-18 16:33:46 +01:00
Didier Roche d5e41df6d7 Refresh po files
Also, add new plymouth fsckd translated strings in french.
Refreshed with "make update-po".
2015-02-18 16:33:46 +01:00
Didier Roche b0d9246486 Translate fsckd messages for plymouth
For plymouth themes not supporting i18n (like .script), send translated
messages to display to user, which is equivalent to the sent machine
readable data.
2015-02-18 16:33:46 +01:00
Didier Roche 20f56fddcd Add gettext support 2015-02-18 16:33:46 +01:00
Didier Roche 07f9a21b6d Connect to plymouth and support cancellation 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 overriden 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
overriden (matching only fsckd-cancel-msg prefix) for themes supporting i18n.
2015-02-18 16:33:46 +01:00
Didier Roche 19e887e709 systemd-fsck: always connect to systemd-fsckd
Remove the plymouth running or show-status checks from systemd-fsck. Instead,
always connect to systemd-fsckd socket, and let this one decide if we display
progress or not.
2015-02-18 16:33:46 +01:00
Didier Roche ac6e2f0dfc fsckd daemon for inter-fsckd communication
Add systemd-fsckd multiplexer which accepts multiple systemd-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. This will be used for interactive
progress report and cancelling in plymouth.

systemd-fsckd stops on idle when no systemd-fsck is connected.

Make the necessary changes to systemd-fsck to connect to the systemd-fsckd
socket.
2015-02-18 16:33:46 +01:00
Didier Roche 2a5a41e86b machine-id-commit: add man pages
Add man pages for systemd-machine-id-commit.service and
systemd-machine-id-commit.
2014-12-03 03:41:19 +01:00
Didier Roche a1405db67c machine-id-commit: add unit file
The unit file only active the machine-id-commit helper if /etc is mounted
writable and /etc/machine-id is an independant mount point (should be a tmpfs).
2014-12-03 03:41:19 +01:00
Didier Roche 3fb394369c machine-id-commit: Introduce machine-id-commit binary
This binary enables to commit transient machine-id on disk if it becomes
writable.
2014-12-03 03:41:19 +01:00
Didier Roche 979ef53a26 machine-id-setup: add a machine_id_commit call to commit on disk a transient machine-id
If /etc was read only at boot time with an empty /etc/machine-id, the latter
will be mounted as a tmpfs and get reset at each boot. If the system becomes rw
later, this functionality enables to commit in a race-free manner the
transient machine-id to disk.
2014-12-03 03:41:19 +01:00
Didier Roche 9496e375f7 machine-id-setup: Factorize some machine-id-setup functions to be reused 2014-12-03 03:10:27 +01:00