summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <smcv@debian.org>2015-03-11 11:35:40 +0000
committerSimon McVittie <simon.mcvittie@collabora.co.uk>2015-03-12 11:13:34 +0000
commit234fbc82f42f73ff20bf81b9e212b7e9df0eeaa2 (patch)
tree3db6a1bdca69fd47f215cb12a5a6df6576320c54
parent176cb9eff64d203fef906b42a9266f045d32f195 (diff)
downloadgdm-234fbc82f42f73ff20bf81b9e212b7e9df0eeaa2.tar.gz
systemd: call plymouth-quit if gdm fails
gdm.service Conflicts with plymouth-quit.service, so it does not run when it normally would (because GDM wants to handle the handover from plymouth to X11 itself). This means that if gdm fails to start for whatever reason, plymouth is never stopped, so plymouth-quit-wait.service never finishes. This, in turn, means that getty@tty*.service, which is After plymouth-wait-quit.service, never starts, and there is no way to log in locally and fix the problem (Debian bug #780257, but not Debian-specific). In Debian 8, not all display managers have been migrated to participate in managing the display-manager.service symlink yet (in particular, kdm and wdm have not), so gdm has a transitional ExecStartPre that stops it from running if kdm or wdm is selected as the active DM. This has the same effect of preventing plymouth from running (Debian-specific bug #766462). It's easy to avoid both of those situations by scheduling plymouth-quit.service to run if gdm fails. Bug: https://bugzilla.gnome.org/show_bug.cgi?id=746023 Bug-Debian: https://bugs.debian.org/766462 Bug-Debian: https://bugs.debian.org/780257
-rw-r--r--data/gdm.service.in4
1 files changed, 4 insertions, 0 deletions
diff --git a/data/gdm.service.in b/data/gdm.service.in
index 3c86da7b..454e52e5 100644
--- a/data/gdm.service.in
+++ b/data/gdm.service.in
@@ -15,6 +15,10 @@ After=@PLYMOUTH_QUIT_SERVICE@
# plymouth is quit, which we do)
After=rc-local.service plymouth-start.service systemd-user-sessions.service
+# GDM takes responsibility for stopping plymouth, so if it fails
+# for any reason, make sure plymouth still stops
+OnFailure=plymouth-quit.service
+
[Service]
ExecStart=@sbindir@/gdm
Restart=always