Solaris inittab
The /etc/inittab file plays a crucial role in the Solaris boot sequence.
For versions prior to Solaris 10, the /etc/inittab was edited manually. Solaris 10 now manages the /etc/inittab through SMF. The Solaris 10 inittab should not be edited directly.
Solaris 8 and 9
The line entries in the inittab file have the following format:
id:runlevel:action:process
where:
| id | A two-character unique identifier. Entries will contain one of the following keywords:
|
||||||
|---|---|---|---|---|---|---|---|
| runlevel | Indicates the run level involved | ||||||
| action | Indicates how the process is to be run. The action field of each entry will contain one of the following keywords:
|
||||||
| process | The command to be executed |
At boot time, all entries with runlevel "sysinit" are run. Once these processes are run, the system moves towards the init level indicated by the "initdefault" line. For a default inittab, the line is:
is:3:initdefault:
(This indicates a default runlevel of 3.)
By default, the first script run from the inittab file is /etc/bcheckrc, which checks the state of the root and /usr filesystems. The line controlling this script has the following form:
fs::sysinit:/sbin/bcheckrc >/dev/console 2>&1 </dev/console
The inittab also controls what happens at each runlevel. For example, the default entry for runlevel 2 is:
s2:23:wait:/sbin/rc2 >/dev/console 2>&1 </dev/console
Solaris 10
The default Solaris 10 inittab contains the following:
ap::sysinit:/sbin/autopush -f /etc/iu.ap sp::sysinit:/sbin/soconfig -f /etc/sock2path smf::sysinit:/lib/svc/bin/svc.startd >/dev/msglog 2<>/dev/msglog p3:s1234:powerfail:/usr/sbin/shutdown -y -i5 -g0 >/dev/msglog 2<>/dev/...
The lines accomplish the following:
- Initializes Streams
- Configures socket transport providers
- Initializes SMF master restarter
- Describes a power fail shutdown
In particular, the default keyword is not used any more in Solaris 10. Instead, the default run level is determined within the SMF profile.
When the init process is started, it first sets environment variables set in the /etc/default/init file; by default, only TIMEZONE is set. Then init executes process entries from the inittab that have sysinit set, and transfers control of the startup process to svc.startd.