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

操作系统开发

开发平台:

C/C++

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