plymouth client does not wait for server to process command
Submitted by Daniel Drake
Assigned to Ray Strode @halfline
Description
During shutdown, systemd runs "plymouth --show-splash" and waits for the plymouth client to exit before shutting down the system.
However, the plymouth program appears to exit before the plymouth daemon has finished processing the command.
Thanks to systemd ultra-fast shutdown, this means that the system often shuts down with the plymouth splash only half-drawn. Quite an ugly experience for the user.
I have also seen this issue in another case: I send a command to my theme so that it draws something specific on the screen
plymouth update --status="foo"
I do this from a script, and at this point I require that the theme has finished the drawing operation triggered by the above command. Usually when this script is run, the plymouth client exits before the draw is complete.
Would it be possible to modify the plymouth client behaviour to wait for the server to finish the requested operation before returning? (Perhaps enabled by an optional argument?)
One way I think this can maybe be achieved: send a ping to the plymouth server (i.e. plymouth --ping) after sending the command in question, and don't quit until the ping returns. Assuming plymouthd executes commands serially, the ping will only execute and return after the earlier command has finished.