Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ inittab(4) — 4D1 2.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

exec(2)

open(2)

signal(2)

getty(1M)

init(1M)

sh(1)

who(1)



     INITTAB(4)                                             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 newline, however, a backslash
          (\) preceding a newline indicates a continuation of the
          entry.  Up to 512 characters per entry are permitted.
          Comments may be inserted in the process field using the
          sh(1) convention for comments.  Comments for lines that
          spawn gettys 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 one or two 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
                    terminated 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
                    combination 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.



     Page 1                                        (last mod. 8/20/87)





     INITTAB(4)                                             INITTAB(4)



                    Entries which have these characters in the rstate
                    field 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 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 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
                                  previous 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
                                  process.  In order for this
                                  instruction to be meaningful, the



     Page 2                                        (last mod. 8/20/87)





     INITTAB(4)                                             INITTAB(4)



                                  rstate should be the default or it
                                  must match init's run-level at boot
                                  time.  This action is useful for an
                                  initialization 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
                                  termination 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
                                  signal(2)].

                    powerwait     Execute the process associated with
                                  this entry only when init receives a
                                  power fail signal (SIGPWR) and wait
                                  until it terminates before
                                  continuing 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
                                  nonexistent, ignore the entry.

                    ondemand      This instruction is really a synonym
                                  for the respawn action.  It is
                                  functionally 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
                                  specified in the rstate field and



     Page 3                                        (last mod. 8/20/87)





     INITTAB(4)                                             INITTAB(4)



                                  using that as its initial state. If
                                  the rstate field is empty, this is
                                  interpreted as 0123456 and so init
                                  will enter run-level 6.
                                  Additionally, if init does not find
                                  an initdefault 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
                                  console (i.e., before the Console
                                  Login: prompt).  It is expected that
                                  this entry will be only used to
                                  initialize 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
                    process field.  Comments can be inserted with the
                    ; #comment syntax.

     FILES
          /etc/inittab

     SEE ALSO
          exec(2), open(2), signal(2).
          getty(1M), init(1M) in the System Administrator's Reference
          Manual.
          sh(1), who(1) in the User's Reference Manual.

     ORIGIN
          AT&T V.3
















     Page 4                                        (last mod. 8/20/87)



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026