INIT.8
上传用户:datang2001
上传日期:2007-02-01
资源大小:53269k
文件大小:4k
源码类别:

操作系统开发

开发平台:

C/C++

  1. INIT(8)                   Minix Programmer's Manual                    INIT(8)
  2. NAME
  3.      init - grandparent of all processes
  4. DESCRIPTION
  5.      The first program started by Minix is init.   The  actions  performed  by
  6.      init can be summarized by this pseudo shell program:
  7.           # Open 0, 1, 2.
  8.           exec </dev/null >/dev/log 2>&1
  9.           # Run the system initialization script.
  10.           sh /etc/rc $bootopts
  11.           >/etc/utmp
  12.           echo reboot >>/usr/adm/wtmp
  13.           while :; do
  14.                   # Wait for a process to exit, but don't always block.
  15.                   wait
  16.                   # Record logout.  (Not in this dumb way, of course.)
  17.                   if "pid is in my tables" $pid
  18.                   then
  19.                           echo "logout $pid" >/etc/utmp
  20.                           echo "logout $pid" >>/usr/adm/wtmp
  21.                   fi
  22.                   # Start a new session.
  23.                   while read line type getty init
  24.                   do
  25.                           if idle $line
  26.                           then
  27.                                   $init ... <$tty >$tty
  28.                                   $getty <$tty >$tty 2>&1 &
  29.                                   pid=$!
  30.                                   "add pid to tables" $pid
  31.                                   echo "login $line $pid" >/etc/utmp
  32.                                   echo "login $line $pid" >>/usr/adm/wtmp
  33.                           fi
  34.                   done < /dev/ttytab
  35.           done
  36.      The first action of init is to run /etc/rc to initialize  the  system  as
  37.      described  in boot(8).  Init then enters its main loop where it waits for
  38.      processes to exit, and starts processes on each  enabled  terminal  line.
  39.      The  file /etc/ttytab contains a list of terminal devices, their terminal
  40.      types, the program to execute on them to  allow  one  to  login  (usually
  41.      getty(8)),  and  the  program  to  execute  first  to initialize the line
  42.      (usually stty(1)).  These fields may be left out to indicate that a  line
  43.      is  disabled  or  that initialization is not necessary.  The commands are
  44.                                                                              1
  45. INIT(8)                   Minix Programmer's Manual                    INIT(8)
  46.      searched using the path /sbin:/bin:/usr/sbin:/usr/bin.
  47.      Init accepts several signals that must be sent to process id 1.   (It  is
  48.      the first process, so natually its process id is 1.)  The signals are:
  49.      SIGHUP
  50.           When receiving a hangup signal, init will forget  about  errors  and
  51.           rescan  ttytab  for  processes  to  execute.   Init normally rescans
  52.           ttytab each time it feels the need to  respawn  a  process,  so  the
  53.           hangup  signal is only needed if a line has been shut down, or after
  54.           a terminate signal.  Note that after turning a  line  off  you  will
  55.           have to kill the process running on that line manually, init doesn't
  56.           do that for you.
  57.      SIGTERM
  58.           Normally sent by programs that halt or reboot Minix.  Causes init to
  59.           stop spawning new processes.
  60.      SIGABRT
  61.           Sent by the keyboard driver when the CTRL-ALT-DEL key combination is
  62.           typed.   Causes  init  to  run the shutdown command.  A second abort
  63.           signal makes init halt the system directly with a system call.   The
  64.           keyboard  driver  halts  the system, without a sync, after the third
  65.           CTRL-ALT-DEL.
  66.   Minix vs. Minix-vmd
  67.      There are a few differences between standard Minix and Minix-vmd  on  how
  68.      init  is  run.   The  /etc/rc  file is executed under standard Minix with
  69.      input connected to  /dev/console,  but  under  Minix-vmd  this  is  still
  70.      /dev/null.  This means that under Minix-vmd processes must be reconnected
  71.      to /dev/console with the intr program  if  they  need  user  interaction.
  72.      Minix-vmd  passes  the  value  of  the bootopts boot variable to /etc/rc.
  73.      Standard Minix does not.
  74. FILES
  75.      /etc/ttytab              List of terminals devices.
  76.      /etc/utmp                List of currently logged in users.
  77.      /usr/adm/wtmp            Login/logout history.
  78. SEE ALSO
  79.      ttytab(5), utmp(5), getty(8), stty(1), boot(8).
  80. AUTHOR
  81.      Kees J. Bot (kjb@cs.vu.nl)
  82.                                                                              2