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