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:
parent
1de2fef652
commit
29f3265584
10
Makefile.am
10
Makefile.am
|
@ -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)
|
||||
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
systemd-sulogin-shell
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue