|
|
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)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.