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