summaryrefslogtreecommitdiff
path: root/data/gdm.service.in
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 /data/gdm.service.in
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
Diffstat (limited to 'data/gdm.service.in')
-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