simpleinit — process control initialization
init
[single] [script]
init is
invoked as the last step in the Linux boot sequence. If the
single
option is
used, or if the file /etc/singleboot
exists, then single user
mode will be entered, by starting /bin/sh
. If the file /etc/securesingle
exists, then the root
password will be required to start single user mode. If the
root password does not exist, or if /etc/passwd
does not exist, the checking of
the password will be skipped.
If the file /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
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 /etc/rc
file is executed, and the
information in /etc/inittab
will be used to start processes. Alternatively, the
/etc/inittab
file may be
configured to run a different boot script. See below for
details.
Because of the number of init programs which are appearing
in the Linux community, the documentation for the
/etc/inittab
file, which is
usually found with the inittab(5)
man page, is presented here:
The format is
bootprog=file
fileprefix=string
PATH=search path
INIT_PATH=search path
ttyline:termcap-entry:getty-command
finalprog=path
An example is as follows:
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
Lines beginning with the #
character are treated as comments. Please see documentation
for the getty(8) command that you are
using, since there are several of these in the Linux
community at this time.
The bootprog
value is appended to the fileprefix value, and the
result specifies the boot programme (script) to run. If
unspecified, the default is /etc/rc
. If the boot programme is a
directory, then all scripts in that directory tree are
executed, in parallel. See the need(8) programme for details
on how to elegantly control order of execution and manage
dependencies.
The PATH
value is assigned
to the PATH environment variable of child processes (boot
scripts).
The INIT_PATH
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
PATH
is used. This separation
allows boot scripts to invoke programmes of the same name
without conflict and without needing to specify absolute
paths.
The finalprog value specifies the path of the programme to run after all getty(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".
simpleinit(8) responds to signals in a variety of ways:
SIGHUP
The /etc/inittab
configuration file will be read again.
SIGTSTP
This flips a toggle, which controls whether more processes will be spawned.
SIGINT
simpleinit(8) will sync a few times, and try to start reboot(8). Failing this, it will execute the system reboot(2) call. Under Linux, it is possible to configure the Ctrl-Alt-Del sequence to send a signal to the init process instead of rebooting the system ( simpleinit(8) does this by default).
SIGQUIT
The reboot(8) programme is executed in place of the simpleinit(8) programme. This allows reboot(8) to cleanly remount (read-only) the root filesystem, even if the old inode for the init process was unlinked.
inittab(5), ctrlaltdel(8) reboot(8), termcap(5), getty(8), agetty(8), shutdown(8), initctl(8)
This program is called simpleinit to distinguish it from the System V compatible versions of init which are starting to appear in the Linux community. simpleinit should be linked to, or made identical with, init for correct functionality.
Peter Orbaek ([email protected])
Version 1.20, with patches for singleuser mode by Werner Almesberger
Richard Gooch <[email protected]>
Dependency support