diff options
| author | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 19:55:15 -0400 |
|---|---|---|
| committer | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 19:55:15 -0400 |
| commit | 253e67c8b3a72b3a4757fdbc5845297628db0a4a (patch) | |
| tree | adf53b66087aa30dfbf8bf391a1dadb044c3bf4d /static/netbsd/man8/init.8 | |
| parent | a9157ce950dfe2fc30795d43b9d79b9d1bffc48b (diff) | |
docs: Added All NetBSD Manuals
Diffstat (limited to 'static/netbsd/man8/init.8')
| -rw-r--r-- | static/netbsd/man8/init.8 | 389 |
1 files changed, 389 insertions, 0 deletions
diff --git a/static/netbsd/man8/init.8 b/static/netbsd/man8/init.8 new file mode 100644 index 00000000..db8304a1 --- /dev/null +++ b/static/netbsd/man8/init.8 @@ -0,0 +1,389 @@ +.\" $NetBSD: init.8,v 1.62 2019/09/01 19:13:18 wiz Exp $ +.\" +.\" Copyright (c) 1980, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" This code is derived from software contributed to Berkeley by +.\" Donn Seeley at Berkeley Software Design, Inc. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)init.8 8.6 (Berkeley) 5/26/95 +.\" +.Dd September 1, 2019 +.Dt INIT 8 +.Os +.Sh NAME +.Nm init +.Nd process control initialization +.Sh SYNOPSIS +.Nm +.Op Fl s +.Sh DESCRIPTION +The +.Nm +program is the last stage of the boot process. +It normally begins multi-user operation. +.Pp +.Nm +is executed automatically by the kernel, +after the kernel has initialised all devices +and mounted the root file system. +The kernel may try multiple possible paths for +.Nm , +including +.Pa /sbin/init , +.Pa /sbin/oinit , +.Pa /sbin/init.bak , +and +.Pa /rescue/init . +.Pp +The following table describes the state machine used by +.Nm : +.Bl -enum +.It +Single user shell. +If the kernel is booted in single user mode (see +.Xr boothowto 9 ) , +then the kernel will pass the +.Fl s +option to +.Nm +to prevent the system from going multi-user and +to instead execute a single user shell without starting the normal +daemons. +If the kernel is in a secure mode, +.Nm +will downgrade it to securelevel 0 (insecure mode). +The system is then quiescent for maintenance work and may +later be made to go to state 2 (multi-user) by exiting the single-user +shell (with ^D). +.It +Multi-user boot (default operation). +Executes +.Pa /etc/rc +(see +.Xr rc 8 ) . +If this was the first state entered (as opposed to entering here after +state 1), then +.Pa /etc/rc +will be invoked with its first argument being +.Sq autoboot . +If +.Pa /etc/rc +exits with a non-zero (error) exit code, commence single user +operation by giving the super-user a shell on the console by going +to state 1 (single user). +Otherwise, proceed to state 3. +.Pp +If value of the +.Dq init.root +sysctl node is not equal to +.Pa / +at this point, the +.Pa /etc/rc +process will be run inside a +.Xr chroot 2 +indicated by sysctl with the same error handling as above. +.Pp +If the administrator has not set the security level to \-1 +to indicate that the kernel should not run multiuser in secure +mode, and the +.Pa /etc/rc +script has not set a higher level of security +than level 1, then +.Nm +will put the kernel into securelevel mode 1. +See +.Xr rc.conf 5 +and +.Xr secmodel_securelevel 9 +for more information. +.It +Set up ttys as specified in +.Xr ttys 5 . +See below for more information. +On completion, continue to state 4. +If we did chroot in state 2, each +.Xr getty 8 +process will be run in the same +.Xr chroot 2 +path as in 2 (that is, the value of +.Dq init.root +sysctl is not re-read). +.It +Multi-user operation. +Depending upon the signal received, change state appropriately; +on +.Dv SIGTERM , +go to state 7; +on +.Dv SIGHUP , +go to state 5; +on +.Dv SIGTSTP , +go to state 6. +.It +Clean-up mode; re-read +.Xr ttys 5 , +killing off the controlling processes on lines that are now +.Sq off , +and starting processes that are newly +.Sq on . +On completion, go to state 4. +.It +.Sq Boring +mode; no new sessions. +Signals as per state 4. +.It +Shutdown mode. +Send +.Dv SIGHUP +to all controlling processes, reap the processes for 30 seconds, +and then go to state 1 (single user); warning if not all the processes died. +.El +.Pp +If the +.Sq console +entry in the +.Xr ttys 5 +file is marked +.Dq insecure , +then +.Nm +will require that the superuser password be +entered before the system will start a single-user shell. +The password check is skipped if the +.Sq console +is marked as +.Dq secure . +.Pp +It should be noted that while +.Nm +has the ability to start multi-user operation inside a +.Xr chroot 2 +environment, the +.Nm +process itself will always run in the +.Dq original root directory . +This also implies that single-user mode is always started in the original +root, giving the possibility to create multi-user sessions in different +root directories over time. +The +.Dq init.root +sysctl node is fabricated by +.Nm +at startup and re-created any time it is found to be missing. +Type of the node is string capable of holding full pathname, and +is only accessible by the superuser (unless explicitly destroyed +and re-created with different specification). +.Pp +In multi-user operation, +.Nm +maintains +processes for the terminal ports found in the file +.Xr ttys 5 . +.Nm +reads this file, and executes the command found in the second field. +This command is usually +.Xr getty 8 ; +it opens and initializes the tty line and executes the +.Xr login 1 +program. +The +.Xr login 1 +program, when a valid user logs in, executes a shell for that user. +When this shell dies, either because the user logged out or an +abnormal termination occurred (a signal), the +.Nm +program wakes up, deletes the user from the +.Xr utmp 5 +and +.Xr utmpx 5 +files of current users and records the logout in the +.Xr wtmp 5 +and +.Xr wtmpx 5 +files. +The cycle is +then restarted by +.Nm +executing a new +.Xr getty 8 +for the line. +.Pp +Line status (on, off, secure, getty, or window information) +may be changed in the +.Xr ttys 5 +file without a reboot by sending the signal +.Dv SIGHUP +to +.Nm +with the command +.Dq Li "kill \-s HUP 1" . +This is referenced in the table above as state 5. +On receipt of this signal, +.Nm +re-reads the +.Xr ttys 5 +file. +When a line is turned off in +.Xr ttys 5 , +.Nm +will send a +.Dv SIGHUP +signal to the controlling process +for the session associated with the line. +For any lines that were previously turned off in the +.Xr ttys 5 +file and are now on, +.Nm +executes a new +.Xr getty 8 +to enable a new login. +If the getty or window field for a line is changed, +the change takes effect at the end of the current +login session (e.g., the next time +.Nm +starts a process on the line). +If a line is commented out or deleted from +.Xr ttys 5 , +.Nm +will not do anything at all to that line. +However, it will complain that the relationship between lines +in the +.Xr ttys 5 +file and records in the +.Xr utmp 5 +file is out of sync, +so this practice is not recommended. +.Pp +.Nm +will terminate multi-user operations and resume single-user mode +if sent a terminate +.Pq Dv TERM +signal, for example, +.Dq Li "kill \-s TERM 1" . +If there are processes outstanding that are deadlocked (because of +hardware or software failure), +.Nm +will not wait for them all to die (which might take forever), but +will time out after 30 seconds and print a warning message. +.Pp +.Nm +will cease creating new +.Xr getty 8 Ns 's +and allow the system to slowly die away, if it is sent a terminal stop +.Pq Dv TSTP +signal, i.e., +.Dq Li "kill \-s TSTP 1" . +A later hangup will resume full +multi-user operations, or a terminate will start a single user shell. +This hook is used by +.Xr reboot 8 +and +.Xr halt 8 . +.Pp +The role of +.Nm +is so critical that if it dies, the system will reboot itself +automatically. +If, at bootstrap time, the +.Nm +process cannot be located, or exits during its initialisation, +the system will panic with the message +.Dq panic: init died (signal %d, exit %d) . +.Pp +If +.Pa /dev/console +does not exist, +.Nm +will cd to +.Pa /dev +and run +.Dq Li "MAKEDEV -MM init" . +.Xr MAKEDEV 8 +will use +.Xr mount_tmpfs 8 +or +.Xr mount_mfs 8 +to create a memory file system mounted over +.Pa /dev +that contains the standard devices considered necessary to boot the system. +.Sh FILES +.Bl -tag -width /var/log/wtmp{,x} -compact +.It Pa /dev/console +System console device. +.It Pa /dev/tty* +Terminal ports found in +.Xr ttys 5 . +.It Pa /var/run/utmp{,x} +Record of current users on the system. +.It Pa /var/log/wtmp{,x} +Record of all logins and logouts. +.It Pa /etc/ttys +The terminal initialization information file. +.It Pa /etc/rc +System startup commands. +.El +.Sh DIAGNOSTICS +.Bl -diag +.It "getty repeating too quickly on port %s, sleeping" +A process being started to service a line is exiting quickly +each time it is started. +This is often caused by a ringing or noisy terminal line. +.Em "Init will sleep for 10 seconds" , +.Em "then continue trying to start the process" . +.It "some processes would not die; ps axl advised." +A process is hung and could not be killed when the system was +shutting down. +This condition is usually caused by a process that is stuck in a +device driver because of a persistent device error condition. +.El +.Sh SEE ALSO +.Xr config 1 , +.Xr kill 1 , +.Xr login 1 , +.Xr sh 1 , +.Xr options 4 , +.Xr ttys 5 , +.Xr getty 8 , +.Xr halt 8 , +.Xr MAKEDEV 8 , +.Xr MAKEDEV.local 8 , +.Xr mount_mfs 8 , +.Xr mount_tmpfs 8 , +.Xr rc 8 , +.Xr reboot 8 , +.Xr rescue 8 , +.Xr shutdown 8 , +.Xr sysctl 8 , +.Xr secmodel_bsd44 9 , +.Xr secmodel_securelevel 9 +.Sh HISTORY +An +.Nm +command appeared in +.At v1 . |
