summaryrefslogtreecommitdiff
path: root/static/netbsd/man8/init.8
diff options
context:
space:
mode:
authorJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 19:55:15 -0400
committerJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 19:55:15 -0400
commit253e67c8b3a72b3a4757fdbc5845297628db0a4a (patch)
treeadf53b66087aa30dfbf8bf391a1dadb044c3bf4d /static/netbsd/man8/init.8
parenta9157ce950dfe2fc30795d43b9d79b9d1bffc48b (diff)
docs: Added All NetBSD Manuals
Diffstat (limited to 'static/netbsd/man8/init.8')
-rw-r--r--static/netbsd/man8/init.8389
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 .