Comment 44 for bug 966480

Revision history for this message
In , Chris Bainbridge (chris-bainbridge) wrote :

Upstart doesn't wait for the call to plymouthd to exit, it just waits for it to fork.

The upstart script is like:

    expect fork
    exec /sbin/plymouthd --mode=shutdown
    post-start exec /bin/plymouth show-splash

afaics upstart starts plymouthd, and when plymouthd forks, upstart then immediately executes "plymouth show-splash". At this point plymouthd isn't ready - race condition - which causes the splash screen to fail.

"The daemon should ensure that when it completes the (second) fork that it is fully initialized, since Upstart uses the fork count to determine service readiness" http://upstart.ubuntu.com/cookbook/#daemon-behaviour

This is probably more the fault of the upstart script than of plymouthd. It seems like it will be easier to just fix the script.