Minix Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
INIT(8)                     System Manager's Manual                    INIT(8)

       init - grandparent of all processes

       The first program started by MINIX 3 is init.  The actions performed by
       init can be summarized by this pseudo shell program:

              # Open 0, 1, 2.
              exec </dev/null >/dev/log 2>&1

              # Run the system initialization script.
              sh /etc/rc $bootopts

              echo reboot >>/usr/adm/wtmp

              while :; do
                   # Wait for a process to exit, but don't always block.

                   # Record logout.  (Not in this dumb way, of course.)
                   if "pid is in my tables" $pid
                        echo "logout $pid" >/etc/utmp
                        echo "logout $pid" >>/usr/adm/wtmp

                   # Start a new session.
                   while read line type getty init
                        if idle $line
                             $init ... <$tty >$tty
                             $getty <$tty >$tty 2>&1 &
                             "add pid to tables" $pid
                             echo "login $line $pid" >/etc/utmp
                             echo "login $line $pid" >>/usr/adm/wtmp
                   done < /dev/ttytab

       The first action of init is to run /etc/rc to initialize the system  as
       described  in  boot(8).   Init then enters its main loop where it waits
       for processes to exit, and starts processes on  each  enabled  terminal
       line.   The file /etc/ttytab contains a list of terminal devices, their
       terminal types, the program to execute on them to allow  one  to  login
       (usually  getty(8)), and the program to execute first to initialize the
       line (usually stty(1)).  These fields may be left out to indicate  that
       a  line  is  disabled  or  that  initialization  is not necessary.  The
       commands are searched using the path /sbin:/bin:/usr/sbin:/usr/bin.

       Init accepts several signals that must be sent to process id 1.  (It is
       the first process, so natually its process id is 1.)  The signals are:

       SIGHUP When  receiving  a  hangup signal, init will forget about errors
              and rescan ttytab  for  processes  to  execute.   Init  normally
              rescans ttytab each time it feels the need to respawn a process,
              so the hangup signal is only needed if  a  line  has  been  shut
              down,  or  after  a terminate signal.  Note that after turning a
              line off you will have to kill the process running on that  line
              manually, init doesn't do that for you.

              Normally  sent  by programs that halt or reboot MINIX 3.  Causes
              init to stop spawning new processes.

              Sent  by  the  keyboard  driver  when   the   CTRL-ALT-DEL   key
              combination  is typed.  Causes init to run the shutdown command.
              A second abort signal makes init halt the system directly with a
              system  call.   The  keyboard driver halts the system, without a
              sync, after the third CTRL-ALT-DEL.

   MINIX 3 vs. Minix-vmd
       There are a few differences between standard MINIX 3 and  Minix-vmd  on
       how  init  is run.  The /etc/rc file is executed under standard MINIX 3
       with input connected to /dev/console, but under Minix-vmd this is still
       /dev/null.    This   means  that  under  Minix-vmd  processes  must  be
       reconnected to /dev/console with the intr(8) program if they need  user
       interaction.   Minix-vmd passes the value of the bootopts boot variable
       to /etc/rc.  Standard MINIX 3 does not.

       /etc/ttytab              List of terminals devices.

       /etc/utmp                List of currently logged in users.

       /usr/adm/wtmp            Login/logout history.

       ttytab(5), utmp(5), getty(8), stty(1), boot(8).

       Kees J. Bot (