diff --git a/fix-getty-isolate.patch b/fix-getty-isolate.patch new file mode 100644 index 00000000..4cf794ad --- /dev/null +++ b/fix-getty-isolate.patch @@ -0,0 +1,51 @@ +From 4771148bb92ace55eaa6759a53d04a0f2de9b0d2 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 11 Apr 2012 21:58:33 +0200 +Subject: [PATCH] units: exclude gettys from isolate requests + +gettys are nowadays mostly autospawned and hence usually subject to +being shut down on isolate requests, since they are no dependency of any +other unit. This is a bad idea if the user isolates between +multi-user.graphical and graphical.target, hence exclude them from the +isolation. + +This has the effect that gettys no longer cleaned up when +emergency.target is isolated, which might actualy be considered a +feature, even though it is a change from previous behaviour... + +Note that the one getty that really matters (the one on tty1) is still +removed when isolating to emergency.target since it conflicts with +emergency.service. +--- + TODO | 4 ++-- + units/getty@.service.m4 | 1 + + units/serial-getty@.service.m4 | 1 + + 3 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/units/getty@.service.m4 b/units/getty@.service.m4 +index a02838d..6b931fb 100644 +--- a/units/getty@.service.m4 ++++ b/units/getty@.service.m4 +@@ -32,6 +32,7 @@ After=rc-local.service + # sure that this is synchronized before getty.target, even though + # getty.target didn't actually pull it in. + Before=getty.target ++IgnoreOnIsolate=yes + + [Service] + Environment=TERM=linux +diff --git a/units/serial-getty@.service.m4 b/units/serial-getty@.service.m4 +index fc8b57b..d1d14d3 100644 +--- a/units/serial-getty@.service.m4 ++++ b/units/serial-getty@.service.m4 +@@ -32,6 +32,7 @@ After=rc-local.service + # sure that this is synchronized before getty.target, even though + # getty.target didn't actually pull it in. + Before=getty.target ++IgnoreOnIsolate=yes + + [Service] + Environment=TERM=vt100 +-- +1.7.7 + diff --git a/systemd.changes b/systemd.changes index 10da2aa9..49a9708e 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Apr 24 15:46:54 UTC 2012 - fcrozat@suse.com + +- Add fix-getty-isolate.patch: don't quit getty when changing + runlevel (bnc#746594) + ------------------------------------------------------------------- Fri Apr 20 17:16:37 CEST 2012 - sbrabec@suse.cz diff --git a/systemd.spec b/systemd.spec index 7262e9c5..f67da68a 100644 --- a/systemd.spec +++ b/systemd.spec @@ -92,6 +92,7 @@ Patch41: 0001-add-sparse-support-to-detect-endianness-bug.patch Patch40: 0001-util-never-follow-symlinks-in-rm_rf_children.patch Patch42: fixppc.patch Patch43: logind-logout.patch +Patch44: fix-getty-isolate.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -155,6 +156,7 @@ Plymouth integration for systemd %patch41 -p1 %patch42 -p1 %patch43 -p1 +%patch44 -p1 %build autoreconf -fiv