Unix |
Unix v6 |
|
 |
init(8) |
 |
init process control initialization 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, checks to see if the console
switches contain 173030. (This number is likely to vary
between systems.) If so, the console typewriter 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 and
routines mentioned below and described elsewhere are not
used. If the Shell terminates, starts over looking for the
console switch setting. Otherwise, init invokes a
Shell, with input taken from the file This command file
performs housekeeping like removing temporary files,
mounting file systems, and starting daemons. Then reads the
file 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 open is not
completed until someone is dialed up and carrier established
on the channel. Then is called with argument as specified by
the last character of the file line. reads the user’s
name and invokes (q.v.) 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. Then the
appropriate typewriter is reopened and is reinvoked. catches
the 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 file is read again. The Shell
process on each line which used to be active in 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 file and
sending a signal to the process: use ‘‘kill 1
1.’’ /dev/tty?, /etc/utmp, /usr/adm/wtmp,
/etc/ttys, /etc/rc login (I), kill (I), sh (I), ttys (V),
getty (VIII)
 |
init(8) |
 |