From 7a4ab10135c2b8fdeedb53c0585c67a0d6448ce6 Mon Sep 17 00:00:00 2001 From: Michal Sekletar Date: Tue, 8 Jul 2014 17:42:23 +0200 Subject: [PATCH] units: make ExecStopPost action part of ExecStart Currently after exiting rescue shell we isolate default target. User might want to isolate to some other target than default one. However issuing systemctl isolate command to desired target would bring system to default target as a consequence of running ExecStopPost action. Having common ancestor for rescue shell and possible followup systemctl default command should fix this. If user exits rescue shell we will proceed with isolating default target, otherwise, on manual isolate, parent shell process is terminated and we don't isolate default target, but target chosen by user. Suggested-by: Michal Schmidt (cherry picked from commit d3381512282f2ca1c7669f77fb736a90fdce6982) --- units/emergency.service.in | 3 +-- units/rescue.service.m4.in | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/units/emergency.service.in b/units/emergency.service.in index 94c090f654..91fc1bbf51 100644 --- a/units/emergency.service.in +++ b/units/emergency.service.in @@ -17,8 +17,7 @@ Environment=HOME=/root WorkingDirectory=/root ExecStartPre=-/bin/plymouth quit ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" to try again\\nto boot into default mode.' -ExecStart=-/sbin/sulogin -ExecStopPost=@SYSTEMCTL@ --fail --no-block default +ExecStart=-/bin/sh -c "/sbin/sulogin; @SYSTEMCTL@ --fail --no-block default" Type=idle StandardInput=tty-force StandardOutput=inherit diff --git a/units/rescue.service.m4.in b/units/rescue.service.m4.in index 552ef8981b..ef5436960f 100644 --- a/units/rescue.service.m4.in +++ b/units/rescue.service.m4.in @@ -18,8 +18,7 @@ Environment=HOME=/root WorkingDirectory=/root ExecStartPre=-/bin/plymouth quit ExecStartPre=-/bin/echo -e 'Welcome to rescue mode! Type "systemctl default" or ^D to enter default mode.\\nType "journalctl -xb" to view system logs. Type "systemctl reboot" to reboot.' -ExecStart=-/sbin/sulogin -ExecStopPost=-@SYSTEMCTL@ --fail --no-block default +ExecStart=-/bin/sh -c "/sbin/sulogin; @SYSTEMCTL@ --fail --no-block default" Type=idle StandardInput=tty-force StandardOutput=inherit