Bootinit
From Gentoo Linux Wiki
Please format this article according to the guidelines and Wikification suggestions, then remove this notice {{Wikify}} from the article
[edit] The initial bootwait process
Following completion of the sysinit system initialization process, the init process triggers the bootwait processes. The inittab configuration file contains the following entry:
rc::bootwait:/sbin/rc boot
This line tells the init process to run to the rc script again, but this time using the boot command line parameter. The init process sets the environmental variables as sysinit before, and runs the !/sbin/rc script again. The script takes the following actions:
Configure the rcsigtrap signal trap, as before
Set the umask to 022, as before
Obtain definitions and functions from the functions.sh include file, as before
Disable the RC_INTERACTIVE flag, if interactive mode is not possible on the terminal type
Define try, check_statedir, noblock_read, user_want_interactive, do_interactive, get_critical_services, and check_critical_services functions.
Set argv1 to the "boot" (passed as a parameter from inittab by the init daemon.)
Configure the initial system path
Run the setup_defaultlevels function to determine if a default runlevel has been specified
If a non-default runlevel has been specified, write this DEFAULTLEVEL to a configuration file.
Export the BOOT flag as a "yes" value
Reset argv1 to BOOTLEVEL (this may have been provided on the kernel command line)
Ensure criticalservices are in the current runlevel.
Run /lib/rcscripts/sh/rc-services.sh
Set OLDSOFTLEVEL = sysinit, Set SOFTLEVEL = boot
Update the splashscreen
Exit if boot /etc/runlevels/boot directory does not exist
Use dolisting to create mylevels as a list of files in /etc/runlevels/boot
Start any coldplug services that failed due to existing /dev/.rcboot
Run the scripts in /etc/runlevels/boot
Remove /dev/.rcboot
Create a list of script names from the mylevels list
Create a set of symlinks to the init scripts in $svcdir (/var/lib/init.d)
Stop all services in get_stop_services
Start all services in get_start_services
Restart devfsd if it is not running
Uninitialize CONSOLETYPE
Update the splash screen
initdefault The initial default processes
