Annotation of cci/usr/src/man/man8/init.8, revision 1.1

1.1     ! root        1: .TH INIT 8 "1 April 1981"
        !             2: .UC 4
        !             3: .SH NAME
        !             4: init \- process control initialization
        !             5: .SH SYNOPSIS
        !             6: .B /etc/init
        !             7: .SH DESCRIPTION
        !             8: .I Init
        !             9: is invoked inside UNIX as the last step in the boot procedure.
        !            10: It normally then runs the automatic reboot sequence as described in
        !            11: .IR reboot (8),
        !            12: and if this succeeds, begins multi-user operation.
        !            13: If the reboot fails, it commences single user operation by giving
        !            14: the super-user a shell on the console.  It is possible to pass parameters
        !            15: from the boot program to
        !            16: .I init
        !            17: so that single user operation is commenced immediately.
        !            18: When such single user operation is terminated by killing the single-user
        !            19: shell (i.e. by hitting ^D),
        !            20: .I init
        !            21: runs
        !            22: .I /etc/rc
        !            23: without the reboot parameter.
        !            24: This command file
        !            25: performs housekeeping operations
        !            26: such as removing temporary files,
        !            27: mounting file systems, and starting
        !            28: daemons.
        !            29: .PP
        !            30: In multi-user operation, 
        !            31: .I init's
        !            32: role is to create a process for each
        !            33: terminal port on which a user may log in.
        !            34: To begin such operations, it reads the file
        !            35: .I /etc/ttys
        !            36: and
        !            37: forks several times to create a process
        !            38: for each terminal specified in the file.
        !            39: Each of these processes opens the appropriate terminal
        !            40: for reading and writing.  These channels thus
        !            41: receive file descriptors 0, 1 and 2, the standard input and
        !            42: output and the diagnostic output.
        !            43: Opening the terminal will usually involve a delay,
        !            44: since the
        !            45: .IR open ""
        !            46: is not completed until someone
        !            47: is dialed up and carrier established on the channel.
        !            48: If a terminal exists but an error occurs when trying to open the terminal
        !            49: .I init
        !            50: complains by writing a message to the system console;
        !            51: the message is repeated every 10 minutes for each such terminal
        !            52: until the terminal is shut off in /etc/ttys and init notified (by
        !            53: a hangup, as described below), or the terminal becomes accessible
        !            54: (init checks again every minute).
        !            55: After an open succeeds,
        !            56: .I /etc/getty
        !            57: is called with argument as specified by the second character of
        !            58: the
        !            59: .I ttys
        !            60: file line.
        !            61: .I Getty
        !            62: reads the user's name and invokes
        !            63: .I login
        !            64: to log in the user and execute the Shell.
        !            65: .PP
        !            66: Ultimately the Shell will terminate
        !            67: because of an end-of-file either
        !            68: typed explicitly or generated as a result of hanging up.
        !            69: The main path of
        !            70: .IR init ,
        !            71: which has been waiting
        !            72: for such an event,
        !            73: wakes up and removes the appropriate entry from the
        !            74: file
        !            75: .IR utmp ,
        !            76: which records current users, and
        !            77: makes an entry in
        !            78: .IR /usr/adm/wtmp ,
        !            79: which maintains a history
        !            80: of logins and logouts.
        !            81: The
        !            82: .I wtmp
        !            83: entry is made only if a user logged in successfully on the line.
        !            84: Then the appropriate terminal is reopened and
        !            85: .I getty
        !            86: is
        !            87: reinvoked.
        !            88: .PP
        !            89: .I Init
        !            90: catches the
        !            91: .I hangup
        !            92: signal (signal SIGHUP) and interprets it to mean that
        !            93: the file
        !            94: .I /etc/ttys
        !            95: should be read again.
        !            96: The Shell process on each line which used to be active
        !            97: in
        !            98: .I ttys
        !            99: but is no longer there is terminated;
        !           100: a new process is created for each added line;
        !           101: lines unchanged in the file are undisturbed.
        !           102: Thus it is possible to drop or add phone lines without
        !           103: rebooting the system by changing the
        !           104: .I ttys
        !           105: file and sending a
        !           106: .I hangup
        !           107: signal to the
        !           108: .I init
        !           109: process: use `kill \-HUP 1.'
        !           110: .PP
        !           111: .I Init
        !           112: will terminate multi-user operations and resume single-user mode
        !           113: if sent a terminate (TERM) signal, i.e. ``kill \-TERM 1''.
        !           114: If there are processes outstanding which are deadlocked (due to
        !           115: hardware or software failure),
        !           116: .I init
        !           117: will not wait for them all to die (which might take forever), but
        !           118: will time out after 30 seconds and print a warning message.
        !           119: .PP
        !           120: .I Init
        !           121: will cease creating new
        !           122: .IR getty 's
        !           123: and allow the system to slowly die away, if it is sent a terminal stop (TSTP)
        !           124: signal, i.e. ``kill \-TSTP 1''.  A later hangup will resume full
        !           125: multi-user operations, or a terminate will initiate a single user shell.
        !           126: This hook is used by
        !           127: .IR reboot (8)
        !           128: and
        !           129: .IR halt (8).
        !           130: .PP
        !           131: .I Init's
        !           132: role is so critical that if it dies, the system will reboot itself
        !           133: automatically.
        !           134: If, at bootstrap time, the
        !           135: .I init
        !           136: process cannot be located, the system will loop in user mode at location
        !           137: 0x13.
        !           138: .SH DIAGNOSTICS
        !           139: \fBinit: \fR\fItty\fR\|\fB: cannot open\fR.  A terminal which is turned
        !           140: on in the \fIrc\fR file cannot be opened, likely because the requisite
        !           141: lines are either not configured into the system or the associated device
        !           142: was not attached during boot-time system configuration.
        !           143: .LP
        !           144: \fBWARNING: Something is hung (wont die); ps axl advised\fR.  A process
        !           145: is hung and could not be killed when the system was shutting down.
        !           146: This is usually caused by a process
        !           147: which is stuck in a device driver due to a persistent device error condition.
        !           148: .SH FILES
        !           149: /dev/console,
        !           150: /dev/tty*,
        !           151: /etc/utmp,
        !           152: /usr/adm/wtmp,
        !           153: /etc/ttys,
        !           154: /etc/rc
        !           155: .SH "SEE ALSO"
        !           156: login(1), kill(1), sh(1), ttys(5), getty(8), rc(8), reboot(8),
        !           157: halt(8), shutdown(8)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.