[systemd-devel] [PATCH] units: make ExecStopPost action part of ExecStart

Andrey Borzenkov arvidjaar at gmail.com
Tue Jul 8 09:18:32 PDT 2014


В Tue,  8 Jul 2014 18:01:12 +0200
Michal Sekletar <msekleta at redhat.com> пишет:

> 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 <mschmidt at redhat.com>
> ---
>  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 94c090f..91fc1bb 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"

You do not really need /bin/sh here, right?

>  Type=idle
>  StandardInput=tty-force
>  StandardOutput=inherit
> diff --git a/units/rescue.service.m4.in b/units/rescue.service.m4.in
> index 552ef89..ef54369 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=- at SYSTEMCTL@ --fail --no-block default
> +ExecStart=-/bin/sh -c "/sbin/sulogin; @SYSTEMCTL@ --fail --no-block default"

And here.

>  Type=idle
>  StandardInput=tty-force
>  StandardOutput=inherit



More information about the systemd-devel mailing list