init - Process control initialization
0 Shuts down and halts the system.
2 Changes the run level to a multiuser state with local processes and
3 Changes the run level to a multiuser state with remote processes and
Changes run level to that specified by the number option in the
/etc/inittab file. If no such entry exists, no action is taken and no
message is output.
Mm Moves control to the console device and halts to single-user mode.
Qq Forces init to reexamine the entries in the inittab file and terminates
any live processes which have had their configuration entries removed
from /etc/inittab. Users should be aware that when a getty(8) line has
been removed from/etc/inittab, and a login shell is active on the ter-
minal line that was formerly designated in inittab as a getty entry,
the login shell will be killed.
Ss Changes the run level to a single user state with only the essential
The init program initializes the system by creating and controlling
processes. The processes run by init at each run level are defined in the
inittab file. The init program reads and processes the entries in the init-
The init program considers the system to be in a run level at any given
time; each run level has a specific group of processes that run at that
level. The init program operates in one of eleven run levels: 0-9 and Ss.
Of these, only -0, -s, -2, and -3 are configured in the inittab file by
The run level changes when a privileged user invokes init. The new init
sends appropriate signals to the original init that tell it which run level
to change to.
Running the init program is the last step in the boot process after the
root file system is mounted. The init program scans the inittab file and
looks for an entry with the initdefault keyword. If the entry is there,
init uses the run level specified in that entry as the initial run level to
enter. If the entry is not found in the<filename> inittab</filename> file
or if the inittab file does not exist, init requests that the user enter a
run level from the system console, /dev/console. If the user enters the
letter s, init enters single user state, assigns the virtual console termi-
nal to the user's terminal and opens it for reading and writing. The su
command is invoked and the system displays a message on the console stating
the location of the virtual console.
To change the run level, the user specifies either the 0, 2, 3, or s
For the first post-boot execution of init to a run level other than single
user, it searches the inittab file for entries at the new run level that
have the boot or bootwait keywords. If the run level that is specified
matches the entry, the init program acts on these entries before processing
other entries in the inittab file. Any special initialization of the sys-
tem, such as checking and mounting file systems, takes place before users
are allowed on the system. The init program then scans the inittab file to
find all entries that are to be handled for that level.
Before starting a new process, init reads each entry in the inittab file,
and for each entry that should be respawned, init forks a child process.
After spawning all required processes, init waits for one of its descendant
processes to stop, a power-fail signal, or a signal that it should change
the run level. If one of the preceding three conditions occurs, init reex-
amines the inittab file. You can add new entries to the inittab file, but
init does not reexamine the file until one of the three previous conditions
actually occurs. To immediately reexamine the inittab file, invoke the init
program with the q option.
Specifies the command path
Specifies the init command control file
Specifies the permanent login accounting file
Commands: getty(8), rc0(8), rc2(8), rc3(8), shutdown(8)
Functions: kill(2), reboot(2)