Sysinit
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 system initialization process
The inittab configuration file contains the following entry:
si::sysinit:/sbin/rc sysinit
This line tells the init process to run to initialize the system using the rc script using the sysinit parameter.
The init process sets the following environmental variables, before invoking the rc script:
PATH = /bin:/usr/bin:/sbin:/usr/sbin INIT_VERSION = sysvinit-2.86 RUNLEVEL = S PREVLEVEL = N CONSOLE = /dev/console
The init process now invokes the rc script with the sysinit command line parameter, which causes the script to take the following actions:
rcsigtrap Configure the signal trap
Set the umask to 022
functions.sh Obtain definitions and functions from the functions.sh include file
RC_INTERACTIVE Set the RC_INTERACTIVE flag to "yes" if possible
Define try, check_statedir, noblock_read, user_want_interactive, do_interactive, get_critical_services, and check_critical_services functions.
Set argv1 to the "sysinit" (passed as a parameter from inittab by the init daemon.)
Configure the initial system path
Prepare some recovery console devices
Sets the console logging level using dmesg with RC_DMESG_LEVEL set to 1 from (/etc/conf.d/rc via functions.sh)
Display the welcome message
Display "Press I for interactive mode" (If RC_INTERACTIVE is set to "yes")
Mount procfs !/proc
Read the kernel command line, looking for special settings
Mount sysfs !/sys
Examine RC_DEVICES, bootparms, and kernel version, to determine whether to use devfs or udev or static devices.
Start udevd using the start_addon function (this runs udev-start.sh)
Start devfs using the start_addon function (this runs devfs-start.sh)
Display failure information messages if udev or devfs failed to configure
Create and mount !/dev/pts
Export the BOOT flag as a "yes" value
Run the setup_defaultlevels function to configure a forced SOFTLEVEL from the kernel command line
Compile a list of criticalservices using the get_critical_services function
Update the splashscreen
Start the criticalservices using the start_critical_service function (in a loop)
Notify the init process of a runlevel change using [telinit].
Start RAID and LVM related addon processes.
Save bootlog output using bootlog sync.
Mount tmpfs, ramfs or ramdisk directories.
Ensure criticalservices are in the boot runlevel.
Use depscan.sh to perform a dependency scan.
Mark criticalservices as started
Display an error if !/dev/null or !/dev/console are missing
Initialize !/var/run/utmp and !/var/log/wtmp
Remove !/var/run/utmpx
Issue a quit command to bootlog
[edit] See also
bootinit The initial bootwait process
