init(8)init(8)NAMEinit - Process control initialization
SYNOPSIS
/sbin/init [0123456789MmQqSs]
OPTIONS
Shuts down and halts the system. Changes the run level to a multiuser
state with local processes and daemons. Changes the run level to a
multiuser state with remote processes and daemons. 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. Moves
control to the console device and halts to single-user mode. 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 terminal
line that was formerly designated in inittab as a getty entry, the
login shell will be killed. Changes the run level to a single user
state with only the essential kernel services.
DESCRIPTION
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 inittab file.
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 default.
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> init‐
tab</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 terminal 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
option.
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 ini‐
tialization of the system, 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 condi‐
tions occurs, init reexamines 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.
FILES
Specifies the command path Specifies the init command control file
Specifies the permanent login accounting file
SEE ALSO
Commands: getty(8), rc0(8), rc2(8), rc3(8), shutdown(8)
Functions: kill(2), reboot(2)
Files: inittab(4)init(8)