units: simplify rescue.service and emergency.service (#5623)

The emergency.service and rescue.service units have become rather
convoluted. We spawn multiple shells and the help text spans multiple lines
which makes the units hard to read.

Move the logic into a single shell script and call that via ExecStart.
This commit is contained in:
Michael Biebl 2017-03-23 04:37:06 +01:00 committed by Zbigniew Jędrzejewski-Szmek
parent 1de2fef652
commit 29f3265584
5 changed files with 27 additions and 6 deletions

View File

@ -443,6 +443,12 @@ userenvgenerator_PROGRAMS = \
30-systemd-environment-d-generator
endif
rootlibexec_SCRIPTS = \
src/sulogin-shell/systemd-sulogin-shell
EXTRA_DIST += \
src/sulogin-shell/systemd-sulogin-shell.in
dist_bashcompletion_data = \
shell-completion/bash/busctl \
shell-completion/bash/journalctl \
@ -6329,6 +6335,10 @@ src/core/%.systemd: src/core/%.systemd.in
src/%.policy.in: src/%.policy.in.in
$(SED_PROCESS)
src/sulogin-shell/%: src/sulogin-shell/%.in
$(SED_PROCESS)
$(AM_V_GEN)chmod +x $@
shell-completion/%: shell-completion/%.in
$(SED_PROCESS)

1
src/sulogin-shell/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
systemd-sulogin-shell

View File

@ -0,0 +1,14 @@
#!/bin/sh
if [ -x /bin/plymouth ]; then
/bin/plymouth --wait quit
fi
cat <<EOF
You are in $1 mode. After logging in, type "journalctl -xb" to view
system logs, "systemctl reboot" to reboot, "systemctl default" or ^D to
boot into default mode.
EOF
@SULOGIN@
@SYSTEMCTL@ --job-mode=fail --no-block default

View File

@ -17,9 +17,7 @@ Before=shutdown.target
[Service]
Environment=HOME=/root
WorkingDirectory=-/root
ExecStartPre=-/bin/sh -c "[ -x /bin/plymouth ] && /bin/plymouth --wait quit"
ExecStartPre=-/bin/echo -e 'You are in emergency mode. After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" or ^D to\\ntry again to boot into default mode.'
ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --job-mode=fail --no-block default"
ExecStart=-@rootlibexecdir@/systemd-sulogin-shell emergency
Type=idle
StandardInput=tty-force
StandardOutput=inherit

View File

@ -16,9 +16,7 @@ Before=shutdown.target
[Service]
Environment=HOME=/root
WorkingDirectory=-/root
ExecStartPre=-/bin/sh -c "[ -x /bin/plymouth ] && /bin/plymouth --wait quit"
ExecStartPre=-/bin/echo -e 'You are in rescue mode. After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" or ^D to\\nboot into default mode.'
ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --job-mode=fail --no-block default"
ExecStart=-@rootlibexecdir@/systemd-sulogin-shell rescue
Type=idle
StandardInput=tty-force
StandardOutput=inherit