telinit

Hurricane Electric Internet Services: Accounts starting at $9.95/month
Hurricane Electric Internet Services

NAME

       init, telinit - process control initialization


SYNOPSIS

       /sbin/init [ -t sec ] [ 0123456SsQq ]
       /sbin/telinit [ -t sec ] [ 0123456sSQqabc ]


DESCRIPTION

   Init
       Init  is the father 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 gettys on each line that
       users  can  log in.  It also controls autonomous processes
       required by any particular system.

       A run level 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 run levels
       are  defined in the /etc/inittab file.  Init can be in one
       of eight run levels, 0-6 and S or s.   The  run  level  is
       changed  by  having  a  privileged user run /sbin/telinit,
       which sends appropriate signals to init, telling it  which
       run level to change to.

       After init is invoked as the last step of the kernel boot-
       ing, it looks for the file /etc/inittab to see if there is
       an  entry of the type initdefault (see inittab(5)).  init-
       default determines the initial run level  of  the  system.
       If there is no such entry or no /etc/inittab at all, a run
       level has to be entered at the system console.

       Run level S or s bring the system to single user mode  and
       do  not  require  an  /etc/initttab  file.  In single user
       mode, /bin/sh 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, init initializes the line at 9600 baud and 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 the first time, init per-
       forms the boot and bootwait entries to allow file  systems
       to  be  mounted before users can log in.  Then all entries
       matching the run level are processed.

       When starting a new process, init first looks if 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 if
       these files exist.

       After it has spawned all of the processes specified,  init
       waits for one of its descendant processes to die, a power-
       fail signal, or until it is signaled by  /sbin/telinit  to
       change  the  system's  run  level.   When one of the above
       three conditions occurs, it re-examines  the  /etc/inittab
       file.   New entries can be added to this file at any time.
       However, init still waits for one of the above three  con-
       ditions   to  occur.   To  provide  for  an  instantaneous
       response, the Q or q command can wake up init to  re-exam-
       ine the /etc/inittab file.

       If  init  is not in single user mode and receives a power-
       fail signal, special powerfail entries are invoked.

       When init is requested to change the run level,  it  sends
       the warning signal SIGTERM to all processes that are unde-
       fined in the new run  level.   It  then  waits  5  seconds
       before  forcibly  terminating these processes via the kill
       signal SIGKILL.  Note that init  assumes  that  all  these
       processes  (and their descendants) remain in the same pro-
       cess group which init originally created for them.  If any
       process  changes its process group affiliation it will not
       receive these signals.  Such processes need to  be  termi-
       nated separately.

   telinit
       /sbin/telinit  is  linked  to /sbin/init.  It takes a one-
       character argument and signals init to perform the  appro-
       priate  action.   The  following arguments serve as direc-
       tives to /sbin/telinit:

       0,1,2,3,4,5 or 6
              tell /sbin/init to  switch  to  the  specified  run
              level.

       a,b,c  tell  /sbin/init to process only those /etc/inittab
              file entries having run level a,b or c.

       Q or q tells /sbin/init  to  re-examine  the  /etc/inittab
              file.

       S or s tells /sbin/init to switch to single user mode.

       /sbin/telinit  can  also tell init how much time it should
       wait between sending processes the TERM and the KILL  sig-
       nal;  default  this is 5 seconds, but it can be changed by
       the -t sec option.

       /sbin/telinit can be invoked only by users with  appropri-
       ate privileges.



RUNLEVELS

       Run  levels 0, 1 and 6 are reserved. Runlevel 0 is used to
       halt the system, runlevel 6 is used to reboot  the  system
       and  runlevel 1 is used to get the system down into single
       user mode. Runlevel S is not really ment to use  directly,
       but  more  for the scripts that are executed when entering
       runlevel 1.For more information on this, see the  manpages
       for shutdown(1) and inittab(5).

       Runlevels  7-9  are  also  valid,  though not really docu-
       mented. This is because "traditional" Unix variants  don't
       use  them.   In  case you wonder, runlevels S and s are in
       fact the same.  Internally they are aliases for  the  same
       runlevel  -  this  is just a leftover from the systems the
       author used to use when writing sysvinit.


FILES

       /etc/inittab
       /etc/initscript
       /dev/console
       /etc/ioctl.save
       /var/run/utmp
       /var/log/wtmp
       /dev/initctl


ENVIRONMENT

       Init sets the following environment variables for all  its
       children:

       PATH   Defaults to /bin:/usr/bin:

       INIT_VERSION
              As  the  name says. Useful to determine if a script
              runs directly from init.

       RUNLEVEL
              The current system runlevel.

       PREVLEVEL
              The previous  runlevel  (useful  after  a  runlevel
              switch).


BOOTFLAGS

       It  is possible to pass a number of flags to init from the
       boot monitor (eg. LILO). Init accepts the following flags:

       S, single
            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 run-
            ning any other startup scripts.



CONFORMING TO

       Init is compatible  with  the  System  V  init.  It  works
       closely  together  with  the  scripts  in  the directories
       /etc/init.d and /etc/rc{runlevel}.d.  If your systems uses
       this  convention,  there  should  be  a README file in the
       directory /etc/init.d explaining how these scripts work.


WARNINGS

       Init assumes that processes and descendants  of  processes
       remain in the same process group which was originally cre-
       ated for them.  If the processes change their group,  init
       can't  kill  them  and  you  may end up with two processes
       reading from one terminal line.


DIAGNOSTICS

       If /sbin/init finds that it is continuously respawning  an
       entry more than 10 times in 2 minutes, it will assume that
       there is an error in the command string, generate an error
       message  on the system console, and refuse to respawn this
       entry until either 5 minutes has elapsed or it receives  a
       signal.   This prevents it from eating up system resources
       when someone makes a typographical error in the /etc/init-
       tab file or the program for the entry is removed.


AUTHOR

       Miquel  van  Smoorenburg (miquels@drinkel.ow.org), initial
       manual  page  by   Michael   Haardt   (u31b3hs@pool.infor-
       matik.rwth-aachen.de).


SEE ALSO

       getty(1),  login(1),  sh(1), who(1), shutdown(1), kill(2),
       inittab(5), initscript(5), utmp(5)
Hurricane Electric Internet Services: Accounts starting at $9.95/month
Hurricane Electric Internet Services
Copyright (C) 1998 Hurricane Electric. All Rights Reserved.