mirror of
https://github.com/systemd/systemd.git
synced 2025-03-09 12:58:26 +03:00
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)
|
||||
|
||||
|
1
src/sulogin-shell/.gitignore
vendored
Normal file
1
src/sulogin-shell/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
systemd-sulogin-shell
|
14
src/sulogin-shell/systemd-sulogin-shell.in
Executable file
14
src/sulogin-shell/systemd-sulogin-shell.in
Executable 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
|
@ -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…
x
Reference in New Issue
Block a user