When you boot the system or change run levels with the init or shutdown command, the init daemon starts processes by reading information from the /etc/inittab file. This file defines three important items for the init process:
The system's default run level
What processes to start, monitor, and restart if they terminate
What actions to be taken when the system enters a new run level
Each entry in the /etc/inittab file has the following fields:
id:rstate:action:process
The following table describes the fields in an inittab entry.
Table 8-2 Fields in the inittab File
Field |
Description |
---|---|
id |
A unique identifier for the entry. |
rstate |
A list of run levels to which this entry applies. |
action |
How the process specified in the process field is to be run. Possible values include: initdefault, sysinit, boot, bootwait, wait, and respawn. |
process |
The command to execute. |
The following example shows an annotated default inittab file:
1 ap::sysinit:/sbin/autopush -f /etc/iu.ap 2 ap::sysinit:/sbin/soconfig -f /etc/sock2path 3 fs::sysinit:/sbin/rcS sysinit >/dev/msglog 2<>/dev/msglog </dev/console 4 is:3:initdefault: 5 p3:s1234:powerfail:/usr/sbin/shutdown -y -i5 -g0 >/dev/msglog 2<>/dev/... 6 sS:s:wait:/sbin/rcS >/dev/msglog 2<>/dev/msglog </dev/console 7 s0:0:wait:/sbin/rc0 >/dev/msglog 2<>/dev/msglog </dev/console 8 s1:1:respawn:/sbin/rc1 >/dev/msglog 2<>/dev/msglog </dev/console 9 s2:23:wait:/sbin/rc2 >/dev/msglog 2<>/dev/msglog </dev/console 10 s3:3:wait:/sbin/rc3 >/dev/msglog 2<>/dev/msglog </dev/console 11 s5:5:wait:/sbin/rc5 >/dev/msglog 2<>/dev/msglog </dev/console 12 s6:6:wait:/sbin/rc6 >/dev/msglog 2<>/dev/msglog </dev/console 13 fw:0:wait:/sbin/uadmin 2 0 >/dev/msglog 2<>/dev/msglog </dev/console 14 of:5:wait:/sbin/uadmin 2 6 >/dev/msglog 2<>/dev/msglog </dev/console 15 rb:6:wait:/sbin/uadmin 2 1 >/dev/msglog 2<>/dev/msglog </dev/console 16 sc:234:respawn:/usr/lib/saf/sac -t 300 17 co:234:respawn:/usr/lib/saf/ttymon -g -h -p "`uname -n` console login: " -T terminal-type -d /dev/console -l console -m ldterm,ttcompat |
Initializes STREAMS modules
Configures socket transport providers
Initializes file systems
Defines default run level
Describes a power fail shutdown
Defines single-user mode
Defines run level 0
Defines run level 1
Defines run level 2
Defines run level 3
Defines run level 5
Defines run level 6
Defines an unused level, firmware
Defines an unused level, off
Defines an unused level, reboot
Initializes Service Access Controller
Initializes console
The init process is started and reads the /etc/default/init file to set any environment variables. By default, only the TIMEZONE variable is set.
Then init reads the inittab file to do the following:
Identify the initdefault entry, which defines the default run level (3).
Execute any process entries that have sysinit in the action field so that any special initializations can take place before users login.
Execute any process entries that have 3 in the rstate field, which matches the default run level, 3.
See init(1M) for a detailed description of how the init process uses the inittab file.
The following table describes the key words used for run level 3's action field.
Table 8-3 Run Level 3 Action Key Word Descriptions
Key Word |
Starts the Specified Process ... |
---|---|
powerfail |
Only when the system receives a power fail signal. |
wait |
And waits for its termination. |
respawn |
If it does not exist. If the process already exists, continue scanning the inittab file. |
The following table describes the processes (or commands) executed at run level 3.
Table 8-4 Run Level 3 Command Descriptions
Command or Script Name |
Description |
---|---|
/usr/sbin/shutdown |
Shuts down the system. The init process runs the shutdown command only if the system has received a powerfail signal. |
/sbin/rcS |
Mounts and checks root (/), /usr, /var, and /var/adm file systems. |
/sbin/rc2 |
Starts the standard system processes, bringing the system up into run level 2 (multiuser mode). |
/sbin/rc3 |
Starts NFS resource sharing for run level 3. |
/usr/lib/saf/sac -t 30 |
Starts the port monitors and network access for UUCP. This process is restarted if it fails. |
/usr/lib/saf/ttymon -g -h -p "`uname -n` console login: " -T terminal_type -d /dev/console -l console |
Starts the ttymon process that monitors the console for login requests. This process is restarted if it fails. The terminal_type on a SPARC based system is sun The terminal_type on an IA based system is AT386 |