[ Previous | Next | Table of Contents | Index | Library Home |
Legal |
Search ]
Files Reference
Controls the initialization
process.
The /etc/inittab file
supplies the script to the init command's
role as a general process dispatcher. The process that constitutes the
majority of the init command's process dispatching activities
is the /etc/getty line process, which initiates individual terminal
lines. Other processes typically dispatched by the init
command are daemons and the shell.
The /etc/inittab file
is composed of entries that are position-dependent and have the following
format:
Identifier:RunLevel:Action:Command
Note: The colon character ( : ) is used as a
delimiter as well as a comment character. To comment out an
inittab entry, add : at the beginning of the
entry. For example:
:Identifier:RunLevel:Action:Command
Each entry is delimited by a
newline character. A backslash (\) preceding a newline character
indicates the continuation of an entry. There are no limits (other than
maximum entry size) on the number of entries in the /etc/inittab
file. The maximum entry size is 1024 characters. The entry
fields are:
- Identifier
- A string (one or more than one character) that uniquely identifies an
object.
- RunLevel
- The run level in which this entry can be processed. Run levels
effectively correspond to a configuration of processes in the system.
Each process started by the init command is assigned one or more
run levels in which it can exist. Run levels are represented by the
numbers 0 through 9. For example, if the system is in run level 1, only
those entries with a 1 in the runlevel field are started.
When you request the init command to change run levels, all
processes without an entry in the runlevel field for the target run
level receive a warning signal (SIGTERM). There is a
20-second grace period before processes are forcibly terminated by the kill
signal (SIGKILL). The runlevel field can define
multiple run levels for a process by selecting more than one run level in any
combination from 0 through 9. If no run level is specified, the process
is assumed to be valid at all run levels.
There are three other values that
appear in the runlevel field, even though they are not true run
levels: a, b, and c. Entries
that have these characters in the runlevel field are processed only
when the telinit command requests them to be run (regardless of the
current run level of the system). They differ from run levels in that
the init command can never enter run level a,
b, or c. Also, a request for the execution of any
of these processes does not change the current run level. Furthermore,
a process started by an a, b, or c command is
not killed when the init command changes levels. They are
only killed if their line in the /etc/inittab file is marked off in
the action field, their line is deleted entirely from
/etc/inittab, or the init command goes into single-user
mode.
- Action
- Tells the init command how to treat the process specified in
the process field. The following actions are recognized by
the init command:
- respawn
- If the process does not exist, start the process. Do not wait for
its termination (continue scanning the /etc/inittab file).
Restart the process when it dies. If the process exists, do nothing and
continue scanning the /etc/inittab file.
- wait
- When the init command enters the run level that matches the
entry's run level, start the process and wait for its termination.
All subsequent reads of the /etc/inittab file while the
init command is in the same run level will cause the
init command to ignore this entry.
- once
- When the init command enters a run level that matches the
entry's run level, start the process, and do not wait for its
termination. When it dies, do not restart the process. When the
system enters a new run level, and the process is still running from a
previous run level change, the program will not be restarted. All
subsequent reads of the /etc/inittab file while the init
command is in the same run level will cause the init command to
ignore this entry.
- boot
- Process the entry only during system boot, which is when the
init command reads the /etc/inittab file during system
startup. Start the process, do not wait for its termination, and when
it dies, do not restart the process. In order for the instruction to be
meaningful, the run level should be the default or it must match the
init command's run level at boot time. This action is
useful for an initialization function following a hardware reboot of the
system.
- bootwait
- Process the entry the first time that the init command goes
from single-user to multi-user state after the system is booted. Start
the process, wait for its termination, and when it dies, do not restart the
process. If the initdefault is 2, run the process right
after boot.
- powerfail
- Execute the process associated with this entry only when the
init command receives a power fail signal
(SIGPWR).
- powerwait
- Execute the process associated with this entry only when the
init command receives a power fail signal (SIGTERM), and
wait until it terminates before continuing to process the
/etc/inittab file.
- off
- If the process associated with this entry is currently running, send the
warning signal (SIGTERM), and wait 20 seconds before terminating
the process with the kill signal (SIGKILL). If the process
is not running, ignore this entry.
- ondemand
- Functionally identical to respawn, except this action applies
to the a, b, or c values, not to run
levels.
- initdefault
- An entry with this action is only scanned when the init command
is initially invoked. The init command uses this entry, if
it exists, to determine which run level to enter initially. It does
this by taking the highest run level specified in the runlevel
field and using that as its initial state. If the runlevel
field is empty, this is interpreted as 0123456789; therefore, the
init command enters run level 9. Additionally, if the
init command does not find an initdefault entry in the
/etc/inittab file, it requests an initial run level from the user
at boot time.
- sysinit
- Entries of this type are executed before the init command tries
to access the console before login. It is expected that this entry will
only be used to initialize devices on which the init command might
try to ask the run level question. These entries are executed and
waited for before continuing.
-
-
- Command
- A shell command to execute. The entire command field is
prefixed with exec and passed to a forked sh as sh
-c exec command. Any legal sh syntax can
appear in this field. Comments can be inserted with the
# comment syntax.
The getty command
writes over the output of any commands that appear before it in the
inittab file. To record the output of these commands to the
boot log, pipe their output to the alog -tboot command.
The stdin, stdout and stdferr file
descriptors may not be available while init is processing
inittab entries. Any entries writing to stdout or stderr may
not work predictably unless they redirect their output to a file or to
/dev/console.
The following commands are the
only supported method for modifying the records in the /etc/inittab
file:
chitab
| Changes records in the /etc/inittab file.
|
lsitab
| Lists records in the /etc/inittab file.
|
mkitab
| Adds records to the /etc/inittab file.
|
rmitab
| Removes records from the /etc/inittab file.
|
- To start the
ident process at all run levels, enter:
ident:0123456789:Action:Command
- To start the
ident process only at run level 2, enter:
ident:2:Action:Command
- To disable run levels 0, 3,
6-9 for the ident process, enter:
ident:1245:Action:Command
- To start the rc
command at run level 2 and send its output to the boot log, enter:
rc:2:wait:/etc/rc 2>&1 | alog -tboot >
/dev/console
This file is part of Base
Operating System (BOS) Runtime.
/etc/inittab
| Specifies the path of the inittab file.
|
/usr/sbin/getty
| Indicates terminal lines.
|
The chitabcommand, init command, lsitab command, mkitab command, rmitab command, telinit command.
[ Previous | Next | Table of Contents | Index |
Library Home |
Legal |
Search ]