INITTAB(4) INTERACTIVE UNIX System INITTAB(4)
NAME
inittab - script for the init process
DESCRIPTION
The inittab file supplies the script to init's role as a
general process dispatcher. The process that constitutes the
majority of init's process dispatching activities is the
line process /etc/getty that initiates individual terminal
lines. Other processes typically dispatched by init are
daemons and the shell.
The inittab file is composed of entries that are position-
dependent and have the following format:
id:rstate:action:process
Each entry is delimited by a new-line; however, a backslash
(\) preceding a new-line indicates a continuation of the
entry. Up to 512 characters per entry are permitted. Com-
ments may be inserted in the process field using the sh(1)
convention for comments. Comments for lines that spawn get-
tys are displayed by the who(1) command. It is expected
that they will contain some information about the line such
as the location. There are no limits (other than maximum
entry size) imposed on the number of entries within the
inittab file. The entry fields are:
id This is up to four characters used to uniquely
identify an entry.
rstate This defines the run-level in which this entry is
to be processed. Run-levels effectively correspond
to a configuration of processes in the system.
That is, each process spawned by init is assigned
a run-level or run-levels in which it is allowed
to exist. The run-levels are represented by a
number ranging from 0 through 6. As an example,
if the system is in run-level 1, only those
entries having a 1 in the rstate field will be
processed. When init is requested to change run-
levels, all processes which do not have an entry
in the rstate field for the target run-level will
be sent the warning signal (SIGTERM) and allowed a
20-second grace period before being forcibly ter-
minated by a kill signal (SIGKILL). The rstate
field can define multiple run-levels for a process
by selecting more than one run-level in any combi-
nation from 0-6. If no run-level is specified,
then the process is assumed to be valid at all
run-levels 0-6. There are three other values, a,
b, and c, which can appear in the rstate field,
even though they are not true run-levels. Entries
which have these characters in the rstate field
Rev. Page 1
INITTAB(4) INTERACTIVE UNIX System INITTAB(4)
are processed only when the telinit [see init(1M)]
process requests them to be run (regardless of the
current run-level of the system). They differ
from run-levels in that init can never enter run-
level a, b, or c. Also, a request for the execu-
tion 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 init
changes levels. They are only killed if their
line in /etc/inittab is marked off in the action
field, their line is deleted entirely from
/etc/inittab, or init goes into the SINGLE USER
state.
action Key words in this field tell init how to treat the
process specified in the process field. The
actions recognized by init are as follows:
respawn If the process does not exist, then
start the process, do not wait for
its termination (continue scanning
the inittab file); and when it dies,
restart the process. If the process
currently exists, then do nothing
and continue scanning the inittab
file.
wait Upon init's entering the run-level
that matches the entry's rstate,
start the process and wait for its
termination. All subsequent reads
of the inittab file while init is in
the same run-level will cause init
to ignore this entry.
once Upon init's entering a run-level
that matches the entry's rstate,
start the process, do not wait for
its termination. When it dies, do
not restart the process. If upon
entering a new run-level, where the
process is still running from a pre-
vious run-level change, the program
will not be restarted.
boot The entry is to be processed only at
init's boot-time read of the inittab
file. Init is to start the process,
not wait for its termination; and
when it dies, not restart the pro-
cess. In order for this instruction
to be meaningful, the rstate should
be the default or it must match
Rev. Page 2
INITTAB(4) INTERACTIVE UNIX System INITTAB(4)
init's run-level at boot time. This
action is useful for an initializa-
tion function following a hardware
reboot of the system.
bootwait The entry is to be processed the
first time init goes from single-
user to multi-user state after the
system is booted. (If initdefault
is set to 2, the process will run
right after the boot.) Init starts
the process, waits for its termina-
tion and, when it dies, does not
restart the process.
powerfail Execute the process associated with
this entry only when init receives a
power fail signal [SIGPWR see sig-
nal(2)].
powerwait Execute the process associated with
this entry only when init receives a
power fail signal (SIGPWR) and wait
until it terminates before continu-
ing any processing of inittab.
off If the process associated with this
entry is currently running, send the
warning signal (SIGTERM) and wait 20
seconds before forcibly terminating
the process via the kill signal
(SIGKILL). If the process is nonex-
istent, ignore the entry.
ondemand This instruction is really a synonym
for the respawn action. It is func-
tionally identical to respawn but is
given a different keyword in order
to divorce its association with
run-levels. This is used only with
the a, b, or c values described in
the rstate field.
initdefault An entry with this action is only
scanned when init initially invoked.
Init uses this entry, if it exists,
to determine which run-level to
enter initially. It does this by
taking the highest run-level speci-
fied in the rstate field and using
that as its initial state. If the
rstate field is empty, this is
interpreted as 0123456 and so init
Rev. Page 3
INITTAB(4) INTERACTIVE UNIX System INITTAB(4)
will enter run-level 6. Addition-
ally, if init does not find an init-
default entry in /etc/inittab, then
it will request an initial run-level
from the user at reboot time.
sysinit Entries of this type are executed
before init tries to access the con-
sole (i.e., before the Console
Login: prompt). It is expected that
this entry will be used only to ini-
tialize devices on which init might
try to ask the run-level question.
These entries are executed and
waited for before continuing.
process This is a sh command to be executed. The entire
process field is prefixed with exec and passed to
a forked sh as sh -c 'exec command'. For this
reason, any legal sh syntax can appear in the pro-
cess field. Comments can be inserted with the ;
#comment syntax.
FILES
/etc/inittab
SEE ALSO
exec(2), open(2), signal(2).
getty(1M), init(1M), sh(1), sulogin(1M), who(1) in the
INTERACTIVE UNIX System User's/System Administrator's Refer-
ence Manual.
Rev. Page 4