init(1M)




NAME

     init, telinit - process control initialization


SYNOPSIS

     /sbin/init [0123456abcQqSs]

     /etc/telinit [0123456abcQqSs]


DESCRIPTION

     init is a general process spawner. Its primary  role  is  to
     create   processes  from  information  stored  in  the  file
     /etc/inittab.

  Run Level Defined
     At any given time, the system is in one  of  eight  possible
     run  levels.  A  run level is a software configuration under
     which only a selected group of processes  exists.  Processes
     spawned  by init for each of these run levels are defined in
     /etc/inittab. init can be in one of eight  run  levels,  0-6
     and  S  or  s (S and s are identical). The run level changes
     when a privileged user runs /sbin/init. This sends appropri-
     ate  signals  to  the original init spawned by the operating
     system at boot time, saying which run level to invoke.

  init and System Booting
     When the system is booted, init is invoked and the following
     occurs. First, it reads /etc/default/init to set environment
     variables. This  is  typically  where  TZ  (time  zone)  and
     locale-related  environments  such  as  LANG or LC_CTYPE get
     set. (See the FILES section at the end of this  page.)  init
     then  looks  in  /etc/inittab for the initdefault entry (see
     inittab(4)). If the initdefault entry:

     exists
           init usually uses the  run  level  specified  in  that
           entry as the initial run level to enter.

     does not exist
           /etc/inittab, init asks the user to enter a run  level
           from the system console.

           S or s
                 init goes to  the  single-user  state.  In  this
                 state,  the system console device (/dev/console)
                 is opened for reading and writing and  the  com-
                 mand  /sbin/su,  (see  su(1M)),  is invoked. Use
                 either init or telinit to change the  run  level
                 of  the  system.  Note that if the shell is ter-
                 minated (using an end-of-file),  init  only  re-
                 initializes   to   the   single-user   state  if
                 /etc/inittab does not exist.

           0-6   init enters the  corresponding  run  level.  Run
                 levels 0, 5, and 6 are reserved states for shut-
                 ting the system down. Run levels 2, 3, and 4 are
                 available as multi-user operating states.

     If this is the first time  since  power  up  that  init  has
     entered a run level other than single-user state, init first
     scans /etc/inittab for boot and bootwait entries (see  init-
     tab(4)).  These  entries are performed before any other pro-
     cessing of /etc/inittab takes place, providing that the  run
     level  entered  matches  that  of the entry. In this way any
     special initialization of  the  operating  system,  such  as
     mounting  file  systems,  can  take  place  before users are
     allowed onto the system. init then scans  /etc/inittab   and
     executes all other entries that are to be processed for that
     run level.

     To spawn each process in /etc/inittab, init reads each entry
     and  for  each  entry  that  should be respawned, it forks a
     child process. After it has spawned  all  of  the  processes
     specified by /etc/inittab, init waits for one of its descen-
     dant processes to die, a powerfail signal, or a signal  from
     another  init  or telinit process to change the system's run
     level. When one of these conditions occurs, init re-examines
     /etc/inittab.

  inittab Additions
     New entries can be added to /etc/inittab at any  time;  how-
     ever, init still waits for one of the above three conditions
     to occur before re-examining  /etc/inittab.  To  get  around
     this,  init  Q  or  init  q command wakes init to re-examine
     /etc/inittab immediately.

     When init comes up at boot  time  and  whenever  the  system
     changes  from  the  single-user  state to another run state,
     init sets the ioctl(2) states of the console to those  modes
     saved  in  the file /etc/ioctl.syscon. init writes this file
     whenever the single-user state is entered.

  Run Level Changes
     When a run level change request  is  made,  init  sends  the
     warning signal (SIGTERM) to all processes that are undefined
     in the target run level. init waits five seconds before for-
     cibly  terminating  these processes by sending a kill signal
     (SIGKILL).

     When init receives a signal telling it  that  a  process  it
     spawned has died, it records the fact and the reason it died
     in /var/adm/utmpx  and  /var/adm/wtmpx  if  it  exists  (see
     who(1)).  A  history  of  the  processes  spawned is kept in
     /var/adm/wtmpx.
     If init  receives  a  powerfail  signal  (SIGPWR)  it  scans
     /etc/inittab  for  special entries of the type powerfail and
     powerwait. These entries are invoked (if the run levels per-
     mit)  before any further processing takes place. In this way
     init can perform various  cleanup  and  recording  functions
     during the powerdown of the operating system.

  Environment Variables in /etc/defaults/init
     You can set default values for  environment  variables,  for
     such   items   as  timezone  and  character  formatting,  in
     /etc/default/init. See the FILES section, below, for a  list
     of these variables.

  telinit
     telinit, which is linked to /sbin/init, is  used  to  direct
     the  actions  of init. It takes a one-character argument and
     signals init to take the appropriate action.


SECURITY

     init uses pam(3PAM) for session management. The  PAM  confi-
     guration policy, listed through /etc/pam.conf, specifies the
     session management module to be used for  init.  Here  is  a
     partial  pam.conf  file with entries for init using the UNIX
     session management module.

     init   session   required    pam_unix_session.so.1

     If there are no entries  for  the  init  service,  then  the
     entries for the "other" service will be used.


OPTIONS

     0     Go into firmware.

     1     Put the system in system administrator mode. All local
           file  systems  are mounted. Only a small set of essen-
           tial kernel processes are left running. This  mode  is
           for  administrative  tasks such as installing optional
           utility packages. All  files  are  accessible  and  no
           users are logged in on the system.

     2     Put the system  in  multi-user  mode.  All  multi-user
           environment   terminal   processes   and  daemons  are
           spawned. This state is commonly  referred  to  as  the
           multi-user state.

     3     Extend  multi-user  mode  by  making  local  resources
           available over the network.

     4     Is available to be defined as  an  alternative  multi-
           user  environment  configuration.  It is not necessary
           for system operation and is usually not used.

     5     Shut the machine down so that it is safe to remove the
           power. Have the machine remove power, if possible.

     6     Stop the operating system  and  reboot  to  the  state
           defined by the initdefault entry in /etc/inittab.

     a, b, c
           process only those /etc/inittab entries having the  a,
           b,  or c run level set. These are pseudo-states, which
           may be defined to run certain commands, but  which  do
           not cause the current run level to change.

     Q, q  Re-examine /etc/inittab.

     S, s  Enter single-user mode. This is  the  only  run  level
           that  doesn't require the existence of a properly for-
           matted /etc/inittab file. If this file does not exist,
           then  by  default,  the only legal run level that init
           can enter is the single-user mode. When in single-user
           mode, the filesystems required for basic system opera-
           tion will be mounted. When the system  comes  down  to
           single-user  mode,  these  file  systems  will  remain
           mounted (even if provided by a  remote  file  server),
           and  any  other  local  filesystems  will also be left
           mounted. During the  transition  down  to  single-user
           mode,  all processes started by init or init.d scripts
           that should only be running  in  multi-user  mode  are
           killed.  In  addition,  any  process  that has a utmpx
           entry will be killed. This last condition insures that
           all  port  monitors  started by the SAC are killed and
           all services started by these port monitors, including
           ttymon login services, are killed.


FILES

     /dev/console
           System console device.

     /etc/default/init
           Contains  environment  variables  and  their   default
           values.  For  example,  for the timezone variable, TZ,
           you might specify TZ=US/Pacific. The variables are:

           TZ    Either specifies the timezone  information  (see
                 ctime(3C)) or the name of a timezone information
                 file /usr/share/lib/zoneinfo.

                 Refer to the TIMEZONE(4) man page before  chang-
                 ing this setting.

           CMASK The mask (see umask(1)) that init uses and  that
                 every process inherits from the init process. If
                 not set, init uses the mask it inherits from the
                 kernel.  Note that init always attempts to apply
                 a umask of 022 before creating a  file,  regard-
                 less of the setting of CMASK.

           LC_CTYPE
                 Character characterization information.

           LC_MESSAGES
                 Message translation.

           LC_MONETARY
                 Monetary formatting information.

           LC_NUMERIC
                 Numeric formatting information.

           LC_TIME
                 Time formatting information.

           LC_ALL
                 If set, all other LC_*  environmental  variables
                 take-on this value.

           LANG  If LC_ALL is not set, and any particular LC_* is
                 also not set, the value of LANG is used for that
                 particular environmental variable.

     /etc/initpipe
           A named pipe used for internal communication.

     /etc/inittab
           Controls process dispatching by init.

     /etc/ioctl.syscon
           ioctl states of the console, as  saved  by  init  when
           single-user state is entered.

     /var/adm/utmpx
           User access and administration information.

     /var/adm/wtmpx
           History of user access and administration information.


ATTRIBUTES

     See attributes(5) for descriptions of the  following  attri-
     butes:

     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | Availability                | SUNWcsu                     |
    |_____________________________|_____________________________|


SEE ALSO

     login(1),  sh(1),  stty(1),  who(1),  shutdown(1M),  su(1M),
     ttymon(1M),  ioctl(2),  kill(2), ctime(3C), pam(3PAM), init-
     tab(4), pam.conf(4), TIMEZONE(4),  utmpx(4),  attributes(5),
     pam_authtok_check(5),                    pam_authtok_get(5),
     pam_authtok_store(5),   pam_dhkeys(5),   pam_passwd_auth(5),
     pam_unix(5),      pam_unix_account(5),     pam_unix_auth(5),
     pam_unix_session(5), termio(7I)


DIAGNOSTICS

     If  init  finds  that  it  is  respawning  an   entry   from
     /etc/inittab  more  than  ten  times in two minutes, assumes
     that there is an error in the command string in  the  entry,
     and  generates  an  error  message on the system console. It
     will then refuse to respawn this  entry  until  either  five
     minutes  has  elapsed  or  it receives a signal from a user-
     spawned init or telinit. This prevents init from  eating  up
     system resources when someone makes a typographical error in
     the inittab file, or a program is removed that is referenced
     in /etc/inittab.


NOTES

     init and telinit can be run only by a privileged user.

     The S or s  state  must  not  be  used  indiscriminately  in
     /etc/inittab.  When modifying this file, it is best to avoid
     adding this state to any line other than initdefault.

     If a default state is not specified in the initdefault entry
     in  /etc/inittab, state 6 is entered. Consequently, the sys-
     tem will loop by going to firmware  and  rebooting  continu-
     ously.

     If the utmpx file cannot be created when booting the system,
     the  system  will  boot to state "s" regardless of the state
     specified in the initdefault entry in /etc/inittab. This can
     occur if the /var file system is not accessible.

     When a system transitions down to the  S  or  s  state,  the
     /etc/nologin  file (see nologin(4)) is created.  Upon subse-
     quent transition to run level 2, this file is removed  by  a
     script in the /etc/rc2.d directory.

     init uses /etc/initpipe, a named pipe, for internal communi-
     cation.
     The pam_unix(5) module might not be supported  in  a  future
     release.    Similar    functionality    is    provided    by
     pam_authtok_check(5),                    pam_authtok_get(5),
     pam_authtok_store(5),   pam_dhkeys(5),   pam_passwd_auth(5),
     pam_unix_account(5),          pam_unix_auth(5),          and
     pam_unix_session(5).


Man(1) output converted with man2html