glenda.party
term% ls -F
term% pwd
$home/manuals/unix_v8/8/init
term% cat index.txt
INIT(8)                     System Manager's Manual                    INIT(8)



NAME
       init - process control initialization

SYNOPSIS
       /etc/init

DESCRIPTION
       Init is invoked inside Unix as the last step in the boot procedure.  It
       normally then runs the automatic reboot sequence as  described  in  re‐
       boot(8), and if this succeeds, begins multi-user operation.  If the re‐
       boot fails, it commences single user operation by giving the super-user
       a  shell  on  the  console.  It is possible to pass parameters from the
       boot program to init so that single user operation is commenced immedi‐
       ately.   When  such  single user operation is terminated by killing the
       single-user shell (i.e. by hitting ^D), init runs /etc/rc  without  the
       reboot  parameter.   This command file performs housekeeping operations
       such as removing temporary files, mounting file systems,  and  starting
       daemons.

       In  multi-user  operation,  init's role is to create a process for each
       terminal port on which a user may log in.  To begin such operations, it
       reads  the file /etc/ttys and forks to create a process for each termi‐
       nal specified in the file.  Each of these processes opens the appropri‐
       ate terminal for reading and writing on file descriptors 0, 1, 2, and 3
       (the standard input and output, the diagnostic  output  and  /dev/tty).
       Opening  the  terminal  will usually involve a delay, since the open is
       not completed until someone dials and carrier  is  established  on  the
       channel.   Then  /etc/getty is called with argument as specified by the
       second character of the ttys file line.  Getty reads  the  user's  name
       and invokes login to log in the user and execute the shell.

       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 /usr/adm/wtmp, which maintains a history of lo‐
       gins and logouts.  Then the appropriate terminal is reopened and  getty
       is reinvoked.

       Init  catches  the  hangup  signal (signal SIGHUP) and interprets it to
       mean that the file /etc/ttys should be read again.  The  shell  process
       on  each line which used to be active in ttys but is no longer there is
       terminated; a new process is created for each  added  line;  lines  un‐
       changed  in  the  file are undisturbed.  Thus it is possible to drop or
       add terminal lines without rebooting the system by  changing  the  ttys
       file and sending a hangup signal to the init process: use `kill -1 1.'

       Init  will  terminate multi-user operations and resume single-user mode
       if sent a terminate (SIGTERM, the default) signal, i.e. `kill  1'.   If
       there  are  processes outstanding which are deadlocked (due to hardware
       or software failure), init will not wait for them  all  to  die  (which
       might  take  forever),  but  will time out after 30 seconds and print a
       warning message.

       Init's role is so critical that if it dies, the system will reboot  it‐
       self  automatically.  If, at bootstrap time, the init process cannot be
       located, the system will loop in user mode at location 0x13.

FILES
       /dev/console, /dev/tty?, /etc/utmp, /usr/adm/wtmp, /etc/ttys, /etc/rc

SEE ALSO
       login(8), kill(1), sh(1), ttys(5), getty(8), rc(8), reboot(8)



                                                                       INIT(8)