.\" Copyright 1992, 1993 Rickard E. Faith (faith@cs.unc.edu)
.\" May be distributed under the GNU General Public License
.\" " for emacs's hilit19 mode :-)
.TH SIMPLEINIT 8 "25 February 2001" "Linux 0.99" "Linux Programmer's Manual"
.SH NAME
simpleinit \- process control initialization
.SH SYNOPSIS
.B init
.RB [ single ]
.RI [ script ]
.SH DESCRIPTION
.B init
is invoked as the last step in the Linux boot sequence.  If the
.B single
option is used, or if the file
.I /etc/singleboot
exists, then single user mode will be entered, by starting
.IR /bin/sh .
If the file
.I /etc/securesingle
exists, then the root password will be required to start single user mode.
If the root password does not exist, or if
.I /etc/passwd
does not exist, the checking of the password will be skipped.

If the file
.I /etc/TZ
exists, then the contents of that file will be read, and used to set the TZ
environment variable for each process started by
.BR simpleinit .
This "feature" is only available if it's configured at compile-time. It's
not normally needed.

After single user mode is terminated, the
.I /etc/rc
file is executed, and the information in
.I /etc/inittab
will be used to start processes. Alternatively, the \fI/etc/inittab\fP
file may be configured to run a different boot script. See below for
details.

.SH "THE INITTAB FILE"
Because of the number of init programs which are appearing in the Linux
community, the documentation for the
.I /etc/inittab
file, which is usually found with the
.BR inittab (5)
man page, is presented here:

The format is

.RS
.B bootprog=file

.B fileprefix=string

.B PATH=search path

.B INIT_PATH=search path

.B "ttyline:termcap-entry:getty-command"

.B finalprog=path
.RE

An example is as follows:

.nf
.RS
bootprog     =
fileprefix   =  /sbin/init.d/
PATH         =  /usr/sbin:/usr/bin:/sbin:/bin
INIT_PATH    =  /sbin/init.d

tty1:linux:/sbin/getty 9600 tty1
tty2:linux:/sbin/getty 9600 tty2
tty3:linux:/sbin/getty 9600 tty3
tty4:linux:/sbin/getty 9600 tty4
# tty5:linux:/sbin/getty 9600 tty5
# ttyS1:dumb:/sbin/getty 9600 ttyS1
# ttyS2:dumb:/sbin/getty -m -t60 2400 ttyS2

finalprog   = /sbin/rc.xdm
.RE
.fi

Lines beginning with the
.B #
character are treated as comments.  Please see documentation for the
.BR getty (8)
command that you are using, since there are several of these in the Linux
community at this time.

The \fBbootprog\fP value is appended to the \fBfileprefix\fP value,
and the result specifies the boot programme (script) to run. If
unspecified, the default is \fI/etc/rc\fP. If the boot programme is a
directory, then all scripts in that directory tree are executed, in
parallel. See the \fBneed\fP(8) programme for details on how to
elegantly control order of execution and manage dependencies.

The \fBPATH\fP value is assigned to the PATH environment variable of
child processes (boot scripts).

The \fBINIT_PATH\fP value is used by simpleinit(8) itself to find the
location of scripts to run (if an absolute path is not given). If
unset and the boot programme is a directory, that directory is used.
Finally, if the script cannot be found in this path, the standard
\fBPATH\fP is used. This separation allows boot scripts to invoke
programmes of the same name without conflict and without needing to
specify absolute paths.

The \fBfinalprog\fP value specifies the path of the programme to run
after all \fBgetty\fP(8) instances are spawned. At bootup, it is
passed a single argument: "start". At shutdown, it is called again,
this time with the argument: "stop".
.SH SIGNALS
\fBsimpleinit\fP(8) responds to signals in a variety of ways:
.TP
.B SIGHUP
The \fI/etc/inittab\fP configuration file will be read again.
.TP
.B SIGTSTP
This flips a toggle, which controls whether more processes will be
spawned.
.TP
.B SIGINT
\fBsimpleinit\fP(8) will sync a few times, and try to start
\fBreboot\fP(8). Failing this, it will execute the system
\fBreboot\fP(2) call. Under Linux, it is possible to configure the
Ctrl-Alt-Del sequence to send a signal to the \fBinit\fP process
instead of rebooting the system (\fBsimpleinit\fP(8) does this by
default).
.TP
.B SIGQUIT
The \fBreboot\fP(8) programme is executed in place of the
\fBsimpleinit\fP(8) programme. This allows \fBreboot\fP(8) to cleanly
remount (read-only) the root filesystem, even if the old inode for the
\fBinit\fP process was unlinked.
.SH FILES
.I /etc/inittab
.br
.I /etc/singleboot
.br
.I /etc/securesingle
.br
.I /etc/TZ
.br
.I /etc/passwd
.br
.I /etc/rc
.SH "SEE ALSO"
.BR inittab (5),
.BR ctrlaltdel (8)
.BR reboot (8),
.BR termcap (5),
.BR getty (8),
.BR agetty (8),
.BR shutdown (8),
.BR initctl (8)
.SH BUGS
This program is called
.B simpleinit
to distinguish it from the System V compatible versions of init which are
starting to appear in the Linux community.
.B simpleinit
should be linked to, or made identical with,
.I init
for correct functionality.
.SH AUTHOR
Peter Orbaek (poe@daimi.aau.dk)
.br
Version 1.20, with patches for singleuser mode by Werner Almesberger
.br
Richard Gooch <rgooch@atnf.csiro.au>
.br
Dependency support

.SH AVAILABILITY
The simpleinit command is part of the util-linux-ng package and is available from
ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/.
