Blob Blame History Raw
From 6415083d3913e8f0da43161fb8c493ff3bfdfcee Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Fri, 14 Mar 2014 11:04:49 -0400
Subject: [PATCH 1/2] systemd: clear terminal after starting

This helps with flicker when the X server shuts down.
---
 data/gdm.service.in | 1 +
 1 file changed, 1 insertion(+)

diff --git a/data/gdm.service.in b/data/gdm.service.in
index 9090cf4..87785b8 100644
--- a/data/gdm.service.in
+++ b/data/gdm.service.in
@@ -1,32 +1,33 @@
 [Unit]
 Description=GNOME Display Manager
 
 # replaces the getty
 Conflicts=getty@tty@GDM_INITIAL_VT@.service
 After=getty@tty@GDM_INITIAL_VT@.service
 
 # replaces plymouth-quit since it quits plymouth on its own
 Conflicts=plymouth-quit.service
 After=plymouth-quit.service
 
 # Needs all the dependencies of the services it's replacing
 # pulled from getty@.service and plymouth-quit.service
 # (except for plymouth-quit-wait.service since it waits until
 # 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
+ExecStartPost=-/bin/bash -c "TERM=linux /usr/bin/clear > /dev/tty1"
 Restart=always
 IgnoreSIGPIPE=no
 BusName=org.gnome.DisplayManager
 StandardOutput=syslog
 StandardError=inherit
 EnvironmentFile=-@LANG_CONFIG_FILE@
 
 [Install]
 Alias=display-manager.service
-- 
2.3.7


From 729d74412cee774c5ccd2b8a7d82eda6e3fc65b2 Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Mon, 30 Mar 2015 21:53:33 -0400
Subject: [PATCH 2/2] systemd: change to KillMode=mixed

By default systemd will kill the entire control-group in one fell
swoop. The problem is, things don't get shutdown in the right
order then, and there's a race where GDM will begin restarting
X servers as soon as they're killed.

This commit tells systemd to just kill the main GDM process, and
let it handle killing all its children on its own.

https://bugzilla.gnome.org/show_bug.cgi?id=747088
---
 data/gdm.service.in | 1 +
 1 file changed, 1 insertion(+)

diff --git a/data/gdm.service.in b/data/gdm.service.in
index 87785b8..47cdcf2 100644
--- a/data/gdm.service.in
+++ b/data/gdm.service.in
@@ -1,33 +1,34 @@
 [Unit]
 Description=GNOME Display Manager
 
 # replaces the getty
 Conflicts=getty@tty@GDM_INITIAL_VT@.service
 After=getty@tty@GDM_INITIAL_VT@.service
 
 # replaces plymouth-quit since it quits plymouth on its own
 Conflicts=plymouth-quit.service
 After=plymouth-quit.service
 
 # Needs all the dependencies of the services it's replacing
 # pulled from getty@.service and plymouth-quit.service
 # (except for plymouth-quit-wait.service since it waits until
 # 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
 ExecStartPost=-/bin/bash -c "TERM=linux /usr/bin/clear > /dev/tty1"
+KillMode=mixed
 Restart=always
 IgnoreSIGPIPE=no
 BusName=org.gnome.DisplayManager
 StandardOutput=syslog
 StandardError=inherit
 EnvironmentFile=-@LANG_CONFIG_FILE@
 
 [Install]
 Alias=display-manager.service
-- 
2.3.7