Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ init(8) — GENIX 4.1A

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

login(1)

kill(1)

sh(1)

ttys(5)

crash(8)

getty(8)

rc(8)

reboot(8)

halt(8)

shutdown(8)



      INIT(8)                 GENIX Programmer'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
           reboot(8), and if this succeeds, begins  multi-user  operation.   If
           the  reboot  fails, it commences single user operation by giving the
           super-user a shell on the console.  It is possible to  pass  parame-
           ters  from the boot program to init so that single user operation is
           commenced immediately.  When such  single  user  operation  is  ter-
           minated  by killing the single-user shell (i.e. by hitting ^D), init
           runs /etc/rc without the reboot parameter.  This command  file  per-
           forms  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 several times to create a pro-
           cess  for  each  terminal  specified  in  the  file.   Each of these
           processes opens the appropriate terminal for  reading  and  writing.
           These  channels  thus receive file descriptors 0, 1 and 2, the stan-
           dard input and output and the diagnostic output.  Opening the termi-
           nal  will  usually  involve a delay, since the open is not completed
           until someone is dialed up and carrier established on  the  channel.
           If  a  terminal  exists  but an error occurs when trying to open the
           terminal init complains by writing a message to the system  console;
           the  message  is  repeated  every  10 minutes for each such terminal
           until the terminal is shut off in /etc/ttys and init notified (by  a
           hangup,  as  described  below),  or  the terminal becomes accessible
           (init  checks  again  every  minute).   After  an   open   succeeds,
           /etc/getty  is called with argument as specified by the second char-
           acter 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 logins and logouts.  The wtmp entry is made only if a
           user logged in successfully on the line.  Then the appropriate  ter-
           minal 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 pro-
           cess 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 unchanged in the file are undisturbed.  Thus it is possible to



      Printed 11/16/83                                                        1





      INIT(8)                 GENIX Programmer's Manual                 INIT(8)



           drop or add phone lines without rebooting the system by changing the
           ttys file and sending a hangup signal to the init process: use `kill
           -HUP 1.'

           Init will terminate multi-user  operations  and  resume  single-user
           mode  if  sent a terminate (TERM) signal, i.e. ``kill -TERM 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 will cease creating new getty's and allow the system to  slowly
           die  away,  if it is sent a terminal stop (TSTP) signal, i.e. ``kill
           -TSTP 1''.  A later hangup will resume full  multi-user  operations,
           or a terminate will initiate a single user shell.  This hook is used
           by reboot(8) and halt(8).

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

      DIAGNOSTICS
           init: tty: cannot open.  A terminal which is turned  on  in  the  rc
           file cannot be opened, likely because the requisite lines are either
           not configured into the system or  the  associated  device  was  not
           attached during boot-time system configuration.

           WARNING: Something is hung (wont die); ps axl advised.  A process is
           hung  and  could  not  be  killed when the system was shutting down.
           This is usually caused by a process  which  is  stuck  in  a  device
           driver due to a persistent device error condition.

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

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
















      Printed 11/16/83                                                        2



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