NAME
cheesed —
MOUSE boot and shutdown
coordinator
SYNOPSIS
cheesed |
init |
poweroff |
reboot |
shutdown |
[-h | -p |
-r] [now] |
DESCRIPTION
cheesed is the first user process started
by the kernel. It performs the platform bootstrap, translates
rc.conf(5) into a temporary OpenRC runlevel tree, enters the
sysinit, boot, and
default runlevels, reaps orphaned children, and
coordinates shutdown. OpenRC remains responsible for service ordering and
service processes.
If platform bootstrap, policy generation, or a required runlevel
fails, cheesed starts an unauthenticated root
tcsh(1)
directly on the console and keeps restarting it until the machine is shut
down.
The init name is accepted only while the
process is PID 1. The other invocation names request shutdown by signalling
the running cheesed process:
poweroff- Request a clean poweroff.
reboot- Request a clean reboot.
shutdown- Request a poweroff by default. The
-hand-poptions also select poweroff, while-rselects reboot. The optionalnowargument is accepted for compatibility; shutdown is always immediate.
On a normal installed NetBSD boot, the platform bootstrap mounts a dynamically sized tmpfs at /tmp, dynamically sized tmpfs filesystems at /var/run and /var/shm, and ptyfs at /dev/pts before starting OpenRC. On live ISO boots, /tmp is bounded to 64 MiB and 8192 nodes, /var/shm is bounded to 64 MiB and 16384 nodes, while /var/run is bounded to 32 MiB and 8192 nodes.
Shutdown enters the OpenRC shutdown
runlevel, syncs filesystems, and then calls the platform reboot
interface.
SIGNALS
SIGINT- Request a reboot.
SIGTERM- Request a poweroff.
FILES
- /etc/rc.conf
- Persistent service enablement policy.
- /etc/init.d
- Machine-local OpenRC service-definition overrides.
- /usr/lib/mouse/init.d
- World default OpenRC service definitions.
- /usr/local/etc/init.d
- Ports OpenRC service definitions, searched after World defaults.
- /usr/lib/mouse/runlevels
- Fixed MOUSE runlevel manifests.
- /var/run/mouse-openrc
- Generated OpenRC state, replaced at each boot.
- /dev/console
- Early boot log and emergency console.
EXIT STATUS
The shutdown invocation names return 0 after delivering their request and 1 for invalid arguments or a signalling error. Normal PID 1 operation does not return.
DIAGNOSTICS
Platform-bootstrap, service-policy, and runlevel failures are
written to /dev/console. If platform bootstrap,
policy generation, or a required runlevel fails,
cheesed opens the emergency root shell described
above. Correct /etc/rc.conf, the named service
definition, or the reported runtime failure, then reboot; there is no
supported command to resume the partially completed boot in place.
After boot, use rc-service service status
for one service and rc-status --crashed for failed
supervised services.
RATIONALE
MOUSE keeps PID 1 responsible for platform bootstrap, the
persistent service policy boundary, child reaping, and shutdown, but does
not make it a second service manager. OpenRC already provides mature service
dependency and supervision machinery; delegating those responsibilities
keeps cheesed small and prevents an individual
service crash or bad service implementation from becoming instability in PID
1 itself.
Generating OpenRC's effective runlevels from rc.conf(5) combines that supervision with the single-file service policy traditionally provided by BSD systems.
The physical console is the final recovery boundary. An early failure may include the login or authentication path itself, so requiring that path before permitting repair could make the machine unrecoverable. The emergency shell therefore deliberately grants root directly and is not a normal login interface.
OpenRC keeps its runtime service state directly under
/var/run because cheesed has
already mounted a tmpfs there. Mounting another memory filesystem for that
state would duplicate the same volatility boundary and require memory-disk
tooling during early boot. On a normal installed boot, the tmpfs mounts have
no arbitrary fixed size or inode ceilings; the kernel can allocate runtime
state according to the resources actually available to the machine. On live
ISO boots, /tmp is bounded to 64 MiB and 8192 nodes,
/var/shm is bounded to 64 MiB and 16384 nodes, while
/var/run is bounded to 32 MiB and 8192 nodes, to
keep mutable state from displacing the ISO-backed World.