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.
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.