Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

login(1)

kill(1)

sh(1)

ttys(5)

getty(8)

rc(8)

reboot(8)

halt(8)

shutdown(8)

INIT(8)                              BSD                               INIT(8)



NAME
     init - process control initialization

SYNOPSIS
     /etc/init

DESCRIPTION
     init is invoked as the last step in the boot procedure.  It normally runs
     the automatic reboot sequence as described in reboot(8), and if this
     succeeds, begins multi-user operation.

     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 executes a command for each terminal
     specified in the file.  This command will usually be /etc/getty.  getty
     opens and initializes the terminal line, 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 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 unchanged
     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 (TERM) signal, that is, 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).

DIAGNOSTICS
     /etc/getty gettyargs failing, sleeping.

     A process being started to service a line is exiting quickly each time it
     is started.  This is often caused by a ringing or noisy terminal line.
     init will sleep for 30 seconds, then continue trying to start the
     process.

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

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

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