Differences between current version and previous revision of init(8).
Other diffs: Previous Major Revision, Previous Author, or view the Annotated Edit History
Newer page: | version 3 | Last edited on Friday, August 13, 2004 7:44:47 pm | by JohnMcPherson | |
Older page: | version 2 | Last edited on Tuesday, June 4, 2002 12:31:13 am | by perry | Revert |
@@ -1,50 +1,30 @@
-INIT
!!!INIT
-NAME
-SYNOPSIS
-DESCRIPTION
-RUNLEVELS
-BOOTING
-CHANGING RUNLEVELS
-TELINIT
-ENVIRONMENT
-BOOTFLAGS
-INTERFACE
-SIGNALS
-CONFORMING TO
-FILES
-WARNINGS
-DIAGNOSTICS
-AUTHOR
-SEE ALSO
-----
+
+
!!NAME
init, telinit - process control initialization
!!SYNOPSIS
-__/sbin/init__ [[ __-a__ ] [[ __-s__ ] [[ __-b__ ]
-
[[ __-z xxx__ ] [[ __0123456Ss__ ]__
-/sbin/telinit__ [[ __-t sec__ ] [[
-__0123456sSQqabcUu__ ]
-!!DESCRIPTION
+__/sbin/init__ [[ __-a__ ] [[ __-s__ ] [[ __-b__ ] [[ __-z xxx__ ] [[ __0123456Ss__ ]
+__/sbin/telinit__ [[ __-t sec__ ] [[__0123456sSQqabcUu__ ]
-__Init__
+!!DESCRIPTION
__Init__ is the parent of all processes. Its primary role
is to create processes from a script stored in the file
__/etc/inittab__ (see inittab(5)). This file
usually has entries which cause __init__ to spawn
__getty__s on each line that users can log in. It also
controls autonomous processes required by any particular
system.
-!!RUNLEVELS
+!!RUNLEVELS
A ''runlevel'' is a software configuration of the system
which allows only a selected group of processes to exist.
The processes spawned by __init__ for each of these
@@ -70,25 +50,23 @@
This is because
S'' and
''s'' are in fact the same. Internally they are aliases
for the same runlevel.
-!!BOOTING
+!!BOOTING
After __init__ is invoked as the last step of the kernel
boot sequence, it looks for the file __/etc/inittab__ to
see if there is an entry of the type __initdefault__ (see
inittab(5)). The __initdefault__ entry determines
the initial runlevel of the system. If there is no such
entry (or no __/etc/inittab__ at all), a runlevel must be
entered at the system console.
-
Runlevel __S__ or __s__ bring the system to single
user mode and do not require an __/etc/inittab__ file. In
single user mode, __/sbin/sulogin__ is invoked on
__/dev/console__.
-
When entering single user mode, __init__ reads the
console's ioctl(2) states from
__/etc/ioctl.save__. If this file does not exist,
@@ -96,28 +74,25 @@
with __CLOCAL__ settings. When __init__ leaves single
user mode, it stores the console's ''ioctl'' settings in
this file so it can re-use them for the next single-user
session.
-
When entering a multi-user mode for the first time,
__init__ performs the __boot__ and __bootwait__
entries to allow file systems to be mounted before users can
log in. Then all entries matching the runlevel are
processed.
-
When starting a new process, __init__ first checks
whether the file ''/etc/initscript'' exists. If it does,
it uses this script to start the process.
-
Each time a child terminates, __init__ records the fact
and the reason it died in __/var/run/utmp__ and
__/var/log/wtmp__, provided that these files
exist.
-!!CHANGING RUNLEVELS
+!!CHANGING RUNLEVELS
After it has spawned all of the processes specified,
__init__ waits for one of its descendant processes to
die, a powerfail signal, or until it is signaled by
@@ -128,48 +103,38 @@
of the above three conditions to occur. To provide for an
instantaneous response, the __telinit Q__ or __q__
command can wake up __init__ to re-examine the
__/etc/inittab__ file.
-
If __init__ is not in single user mode and receives a
powerfail signal (SIGPWR), it reads the file
__/etc/powerstatus__. It then starts a command based on
the contents of this file:
-
F(AIL)
-
Power is failing, UPS is providing the power. Execute the
__powerwait__ and __powerfail__ entries.
-
O(K)
-
The power has been restored, execute the __powerokwait__
entries.
-
L(OW)
-
The power is failing and the UPS has a low battery. Execute
the __powerfailnow__ entries.
-
If /etc/powerstatus doesn't exist or contains anything else
then the letters __F__, __O__ or __L__, init will
behave as if it has read the letter __F__.
-
Usage of __SIGPWR__ and __/etc/powerstatus__ is
discouraged. Someone wanting to interact with __init__
should use the __/dev/initctl__ control channel - see the
source code of the __sysvinit__ package for more
documentation about this.
-
When __init__ is requested to change the runlevel, it
sends the warning signal __SIGTERM__ to
all processes that are undefined in the new runlevel. It
@@ -180,27 +145,23 @@
__init__ originally created for them. If any process
changes its process group affiliation it will not receive
these signals. Such processes need to be terminated
separately.
+
!!TELINIT
-
__/sbin/telinit__ is linked to __/sbin/init__. It
takes a one-character argument and signals __init__ to
perform the appropriate action. The following arguments
serve as directives to __telinit__:
-
__0__,__1__,__2__,__3__,__4__,__5__ or
__6__
-
tell __init__ to switch to the specified run
level.
-
__a__,__b__,__c__
-
tell __init__ to process only those __/etc/inittab__
file entries having runlevel __a__,__b__ or
__c__.
@@ -281,10 +242,11 @@
The system console. This is really inherited from the
kernel; however if it is not set __init__ will set it to
__/dev/console__ by default.
+
+
!!BOOTFLAGS
-
It is possible to pass a number of flags to __init__ from
the boot monitor (eg. LILO). __Init__ accepts the
following flags:
@@ -295,29 +257,27 @@
Single user mode boot. In this mode ''/etc/inittab'' is
examined and the bootup rc scripts are usually run before
the single user mode shell is started.
-
__1-5__
-
Runlevel to boot into.
-
__-b, emergency__
-
Boot directly into a single user shell without running any
other startup scripts.
-
__-a, auto__
+The LILO boot loader adds the word "auto" to the command line if
+it booted the kernel with the default command line (without
+user intervention). If this is found init sets the "AUTOBOOT"
+environment variable to "yes". Note that you cannot use this
+for any security measures ‐ of course the user could specify
+"auto" or -a on the command line manually.
-The LILO boot loader adds the word
-init__ sets the
-__
__-z xxx__
@@ -416,15 +376,16 @@
removed.
!!AUTHOR
-Miquel van Smoorenburg (miquels@cistron.nl), initial manual
+Miquel van Smoorenburg (miquels''
@''
cistron.nl), initial manual
page by Michael Haardt
-(u31b3hs@pool.informatik.rwth-aachen.de).
+(u31b3hs''
@''
pool.informatik.rwth-aachen.de).
+
!!SEE ALSO
getty(1), login(1), sh(1),
-runlevel(8), __
shutdown(8), kill__
(1),
+runlevel(8), shutdown(8), kill(1),
inittab(5), initscript(5),
utmp(5)
----