aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--event.d/quit-plymouth10
-rwxr-xr-xprefdm12
2 files changed, 17 insertions, 5 deletions
diff --git a/event.d/quit-plymouth b/event.d/quit-plymouth
new file mode 100644
index 00000000..4c284ff8
--- /dev/null
+++ b/event.d/quit-plymouth
@@ -0,0 +1,10 @@
+# quit-plymouth - script to stop boot splash
+#
+# This service triggers plymouth to quit when we reach the
+# end of the boot cycle. prefdm handles quit differently, though.
+
+start on stopped rc2
+start on stopped rc3
+start on stopped rc4
+
+exec /usr/bin/plymouth quit
diff --git a/prefdm b/prefdm
index 3baa6933..675506ee 100755
--- a/prefdm
+++ b/prefdm
@@ -2,20 +2,17 @@
PATH=/sbin:/usr/sbin:/bin:/usr/bin
-# shut down any graphical boot that might exist
-if [ -x /usr/bin/rhgb-client ]; then
- /usr/bin/rhgb-client --quit
-fi
-
# We need to source this so that the login screens get translated
[ -f /etc/sysconfig/i18n ] && . /etc/sysconfig/i18n
# Run preferred X display manager
+quit_arg=
preferred=
if [ -f /etc/sysconfig/desktop ]; then
. /etc/sysconfig/desktop
if [ "$DISPLAYMANAGER" = GNOME ]; then
preferred=/usr/sbin/gdm
+ quit_arg="--retain-splash"
elif [ "$DISPLAYMANAGER" = KDE ]; then
preferred=/usr/bin/kdm
elif [ "$DISPLAYMANAGER" = WDM ]; then
@@ -25,8 +22,13 @@ if [ -f /etc/sysconfig/desktop ]; then
elif [ -n "$DISPLAYMANAGER" ]; then
preferred=$DISPLAYMANAGER
fi
+else
+ quit_arg="--retain-splash"
fi
+# shut down boot splash
+/usr/bin/plymouth quit $quit_arg
+
shopt -s execfail
[ -n "$preferred" ] && exec $preferred "$@" >/dev/null 2>&1 </dev/null