aboutsummaryrefslogtreecommitdiffstats
path: root/init/prefdm.conf
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2010-05-19 12:08:02 -0400
committerBill Nottingham <notting@redhat.com>2010-05-19 12:08:02 -0400
commit9d1c6c1e3bf176d3f89de4ec5551f9960c4986ed (patch)
treeb581ab6d5390fd90da37fe2b4c524364368c8e97 /init/prefdm.conf
parentd8b2a0ee8b96925295e6f9cbfe41e5e55e0727a8 (diff)
downloadinitscripts-9d1c6c1e3bf176d3f89de4ec5551f9960c4986ed.tar
initscripts-9d1c6c1e3bf176d3f89de4ec5551f9960c4986ed.tar.gz
initscripts-9d1c6c1e3bf176d3f89de4ec5551f9960c4986ed.tar.bz2
initscripts-9d1c6c1e3bf176d3f89de4ec5551f9960c4986ed.tar.xz
initscripts-9d1c6c1e3bf176d3f89de4ec5551f9960c4986ed.zip
Improve shutdown splash screen reliability
Right now the splash screen and rc script are racing with each other so you occasionally see a few shutdown messages before plymouth is up. This commit ensures proper synchronization between prefdm, plymouthd, and the rc script. It does this by 1) fully stopping prefdm before letting rc start 2) fully starting plymouth before letting rc start 3) if prefdm is running (e.g. runlevel 5), waiting until it is fully stopped before starting plymouthd 4) if prefdm is not running (e.g. runlevel 3), starting plymouthd right away One bit of complication in this commit is the "splash manager". It's a layer of indirection needed to handle the conditional mentioned in 3) and 4). There's no way within an upstart job file to say "start after the prefdm "stopped" event only if prefdm is not already stopped". We really need this to effectively happen, though, because if prefdm isn't in the process of stopping (because it was never started in the first place), it will never emit the stopped event and blocking for an event that never comes mean shutdown would never start. The splash manager checks if prefdm is already running and uses that information to emit an appropriate event that the plymouth-shutdown job can key of off. Note, one implication of 4) is we are showing plymouth when shutting down from runlevel 3 now. This is a change in behavior, but makes sense, since we show plymouth when starting up into runlevel 3.
Diffstat (limited to 'init/prefdm.conf')
-rw-r--r--init/prefdm.conf2
1 files changed, 1 insertions, 1 deletions
diff --git a/init/prefdm.conf b/init/prefdm.conf
index d47356c7..701b8065 100644
--- a/init/prefdm.conf
+++ b/init/prefdm.conf
@@ -4,7 +4,7 @@
start on stopped rc RUNLEVEL=5
-stop on runlevel [!5]
+stop on starting rc RUNLEVEL=[!5]
console output
respawn