INIT(VII)                    6/15/72                    INIT(VII)


     init  -  process control initialization




     Init is invoked inside UNIX as the last  step  in  the  boot

     procedure.   Generally  its  role is to create a process for

     each typewriter on which a user may log in.

     First, init checks to see if the  console  switches  contain

     173030.   (This  number  is likely to vary between systems.)

     If so, the console typewriter tty is opened for reading  and

     writing  and the shell is invoked immediately.  This feature

     is used to bring up a single-user system.  When  the  system

     is  brought  up  in  this  way, the getty and login routines

     mentioned below and described elsewhere are not needed.

     Otherwise, init invokes a Shell, with input taken  from  the

     file  /etc/rc.  This command file performs housekeeping like

     removing  temporary  files,  mounting  file   systems,   and

     starting the data-phone daemon.

     Then init forks several times to create a process  for  each

     typewriter  mentioned  in  an internal table.  Each of these

     processes opens the appropriate typewriter for  reading  and

     writing.  These channels thus receive file descriptors 0 and

     1, the standard input and output.   Opening  the  typewriter

     will  usually  involve  a  delay,  since  the  open  is  not

     completed  until  someone  is   dialled   up   and   carrier

     established  on  the channel.  Then the process executes the

     program /etc/getty (q.v.).  Getty will read the user's  name

     and  invoke login (q.v.)  to log in the user and execute the


     Ultimately the shell will terminate because  of  an  end-of-

     file  either  typed  explicitly  or generated as a result of

     hanging up.  The main path of init, which has  been  waiting

     for  such  an  event,  wakes  up and removes the appropriate

     entry from the file utmp, which records current  users,  and

     makes  an entry in wtmp, which maintains a history of logins

     and logouts.  Then the appropriate  typewriter  is  reopened

     and getty is reinvoked.


     /dev/tty, /dev/tty?, /tmp/utmp, /tmp/wtmp,


     login(I), getty(VII), sh(I)