init.vm \- 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
terminal port on which a user may log in.
first opens the console terminal
and writing, and then invokes a Shell.
This feature brings up the system in single-user mode.
routines mentioned below and described elsewhere are not used yet.
When the single-user shell terminates
(usually caused by typing an EOT on the console),
invokes another Shell, with input taken from the
performs housekeeping operations
such as removing temporary files,
mounting file systems, and starting
forks several times to create a process
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 and 1, the standard input and
Opening the terminal will usually involve a delay,
is not completed until someone
is dialed up and carrier established on the channel.
is called with argument as specified by the second character of
reads the user's name and invokes
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.
wakes up and removes the appropriate entry from the
which records current users, and
which maintains a history
Then the appropriate terminal is reopened and
signal (signal SIGHUP) and interprets it to mean that
The Shell process on each line which used to be active
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
process: use `kill \-1 1.'
To take the system down to a single user system from multi-user
operation, use ``kill 1''.
/dev/console, /dev/tty?, /etc/utmp, /usr/adm/wtmp, /etc/ttys, /etc/rc
login(1), kill(1), sh(1), ttys(5), getty.vm(8)