Reference sections kept pointing at the line-based format they no longer
document. `sysv` and `task` sent the reader to Services for "<COND>",
the cgroups chapter opened by listing three legacy directives and then
explained further down that only two of them exist here, and the logging
chapter still gave "log:prio:facility.level,tag:ident" as the full
syntax.
Some claims were wrong independent of the format:
- a sysv is a supervised daemon, grouped with service in
SVC_TYPE_DAEMON, not a variation on task
- restart-max has no upper bound of 255, or any other
- the built-in rescue fallback runs in 12345789, not 12345
- conditional loading quotes system/10-hotplug.conf, not
system/hotplug.conf
- the key spells conflicts, not conflict
- the built-in getty no longer wants TERM last, it is a key
`if` takes either a service name or, in angle brackets, a condition,
decided in svc_ifthen(). Only the examples showed this, so it is now
said.
Terminology follows the split index.md already draws: a block is the new
format, a stanza the line-based one.
src/rescue.conf was still line-based, missed because it sits in src/
rather than system/ or contrib/.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2.3 KiB
Rescue Mode
Finit supports a rescue mode which is activated by the rescue option
on the kernel command line. See cmdline docs for how to
activate it.
This rescue mode can be disabled at configure time using:
configure --without-rescue
The rescue mode comes in two flavors; traditional and fallback.
Note
In this mode
initctlwill not work. Use the-fflag to forcereboot,shutdown, orpoweroff.
Traditional
This is what most users expect. A very early maintenance login prompt,
served by the system sulogin program from util-linux, or BusyBox. If
that is not found in $PATH, the bundled /libexec/finit/sulogin
program is used instead. If a successful login is made, or if the user
exits (Ctrl-D), the rescue mode is ended and the system boots up
normally.
Warning
The bundled sulogin in Finit can at configure time be given another user than the default (root). If the sulogin user does not have a password, or the account is locked, the user is presented with a prompt:
"Press enter to enter maintenance mode.", which will open up a root shell without prompting for password!
Fallback
If no sulogin program is found, Finit tries to bring up as much of its
own functionality as possible, yet limiting many aspects, meaning; no
network, no fsck of file systems in /etc/fstab, no /etc/rc.local,
no runparts, and most plugins are skipped (except those that provide
functionality for the condition subsystem).
Instead of reading /etc/finit.conf et al, system configuration is read
from /lib/finit/rescue.conf, which can be freely modified by the
system administrator.
The bundled default rescue.conf contains nothing more than:
runlevel = 1
tty rescue {
runlevel = "12345"
rescue = true
}
The tty block has rescue set, which works similar to the board
bring-up setting notty. The major difference being that sulogin
is started to query for root/admin password. If sulogin is not found,
rescue behaves like notty and gives a plain root shell prompt.
If Finit cannot find /lib/finit/rescue.conf it falls back to a
built-in equivalent, which runs in every runlevel it can:
tty rescue {
runlevel = "12345789"
rescue = true
}
There is no way to exit the fallback rescue mode.