INIT.8
资源名称:os_source.zip [点击查看]
上传用户:datang2001
上传日期:2007-02-01
资源大小:53269k
文件大小:3k
源码类别:
操作系统开发
开发平台:
C/C++
- .TH INIT 8
- .SH NAME
- init - grandparent of all processes
- .SH DESCRIPTION
- The first program started by Minix is
- .BR init .
- The actions performed by
- .B init
- can be summarized by this pseudo shell program:
- .RS
- .nf
- .if t .ft C
- # Open 0, 1, 2.
- exec </dev/null >/dev/log 2>&1
- # Run the system initialization script.
- sh /etc/rc $bootopts
- >/etc/utmp
- echo reboot >>/usr/adm/wtmp
- while :; do
- # Wait for a process to exit, but don't always block.
- wait
- # Record logout. (Not in this dumb way, of course.)
- if "pid is in my tables" $pid
- then
- echo "logout $pid" >/etc/utmp
- echo "logout $pid" >>/usr/adm/wtmp
- fi
- # Start a new session.
- while read line type getty init
- do
- if idle $line
- then
- $init ... <$tty >$tty
- $getty <$tty >$tty 2>&1 &
- pid=$!
- "add pid to tables" $pid
- echo "login $line $pid" >/etc/utmp
- echo "login $line $pid" >>/usr/adm/wtmp
- fi
- done < /dev/ttytab
- done
- .if t .ft R
- .fi
- .RE
- The first action of
- .B init
- is to run
- .B /etc/rc
- to initialize the system as described in
- .BR boot (8).
- .B Init
- then enters its main loop where it waits for processes to exit, and starts
- processes on each enabled terminal line. The file
- .B /etc/ttytab
- contains a list of terminal devices, their terminal types, the program to
- execute on them to allow one to login (usually
- .BR getty (8)),
- and the program to execute first to initialize the line (usually
- .BR 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
- .BR /sbin:/bin:/usr/sbin:/usr/bin .
- .PP
- .B 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:
- .TP
- .B SIGHUP
- When receiving a hangup signal,
- .B init
- will forget about errors and rescan
- .B ttytab
- for processes to execute.
- .B Init
- normally rescans
- .B 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,
- .B init
- doesn't do that for you.
- .TP
- .B SIGTERM
- Normally sent by programs that halt or reboot Minix. Causes
- .B init
- to stop spawning new processes.
- .TP
- .B SIGABRT
- Sent by the keyboard driver when the
- .B CTRL-ALT-DEL
- key combination is typed. Causes
- .B init
- to run the
- .B shutdown
- command. A second abort signal makes
- .B init
- halt the system directly with a system call. The keyboard driver halts the
- system, without a sync, after the third CTRL-ALT-DEL.
- .SS "Minix vs. Minix-vmd"
- There are a few differences between standard Minix and Minix-vmd on how
- .B init
- is run. The
- .B /etc/rc
- file is executed under standard Minix with input connected to
- .BR /dev/console ,
- but under Minix-vmd this is still
- .BR /dev/null .
- This means that under Minix-vmd processes must be reconnected to
- .B /dev/console
- with the
- .B intr
- program if they need user interaction.
- Minix-vmd passes the value of the
- .B bootopts
- boot variable to /etc/rc. Standard Minix does not.
- .SH FILES
- .TP 25n
- .B /etc/ttytab
- List of terminals devices.
- .TP
- .B /etc/utmp
- List of currently logged in users.
- .TP
- .B /usr/adm/wtmp
- Login/logout history.
- .SH "SEE ALSO"
- .BR ttytab (5),
- .BR utmp (5),
- .BR getty (8),
- .BR stty (1),
- .BR boot (8).
- .SH AUTHOR
- Kees J. Bot (kjb@cs.vu.nl)