.th INIT VIII 2/22/74 .sh NAME init \*- process control initialization .sh SYNOPSIS .bd /etc/init .sh DESCRIPTION .it 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. .s3 First, .it init checks to see if the console switches contain 173030. (This number is likely to vary between systems.) If so, the console typewriter .bd /dev/tty8 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 .it getty and .it login routines mentioned below and described elsewhere are not used. If the Shell terminates, .it init starts over looking for the console switch setting. .s3 Otherwise, \fIinit\fR invokes a Shell, with input taken from the file .it /etc/rc. This command file performs housekeeping like removing temporary files, mounting file systems, and starting daemons. .s3 Then .it init reads the file .it /etc/ttys and forks several times to create a process for each typewriter specified in the file. 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 \fIopen\fR is not completed until someone is dialed up and carrier established on the channel. Then .it /etc/getty is called with argument as specified by the last character of the .it ttys file line. .it Getty reads the user's name and invokes .it login (q.v.) to log in the user and execute the Shell. .s3 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 \fIinit\fR, which has been waiting for such an event, wakes up and removes the appropriate entry from the file \fIutmp\fR, which records current users, and makes an entry in \fI/usr/adm/wtmp\fR, which maintains a history of logins and logouts. Then the appropriate typewriter is reopened and .it getty is reinvoked. .s3 .it Init catches the .it hangup signal (signal #1) and interprets it to mean that the switches should be examined as in a reboot: if they indicate a multi-user system, the .it /etc/ttys file is read again. The Shell process on each line which used to be active in .it 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 phone lines without rebooting the system by changing the .it ttys file and sending a .it hangup signal to the .it init process: use ``kill \*-1 1.'' .sh FILES /dev/tty?, /etc/utmp, /usr/adm/wtmp, /etc/ttys, /etc/rc .sh "SEE ALSO" login (I), kill (I), sh (I), ttys (V), getty (VIII)