1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
|
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
%general-entities;
]>
<sect1 id="ch-system-sysvinit" xreflabel="Sysvinit" role="wrap">
<title>Sysvinit-&sysvinit-version;</title>
<?dbhtml filename="sysvinit.html"?>
<indexterm zone="ch-system-sysvinit"><primary sortas="a-Sysvinit">Sysvinit</primary></indexterm>
<sect2 role="package"><title/>
<para>The Sysvinit package contains programs for controlling the startup,
running, and shutdown of your system.</para>
<segmentedlist>
<segtitle>&buildtime;</segtitle>
<segtitle>&diskspace;</segtitle>
<seglistitem><seg>0.1 SBU</seg><seg> 0.9 MB</seg></seglistitem>
</segmentedlist>
<segmentedlist>
<segtitle>Sysvinit installation depends on</segtitle>
<seglistitem><seg>Binutils, Coreutils, GCC, Glibc, Make</seg></seglistitem>
</segmentedlist>
</sect2>
<sect2 role="installation">
<title>Installation of Sysvinit</title>
<para>When run-levels are changed (for example, when halting the system),
<command>init</command> sends termination signals to those processes that
<command>init</command> itself started and that shouldn't be running in the new
run-level. While doing this, <command>init</command> outputs messages like
<quote>Sending processes the TERM signal</quote> which seem to imply that it is sending these signals to all currently running processes. To avoid this
misinterpretation, you can modify the source so that these messages read like
<quote>Sending processes started by init the TERM signal</quote> instead:</para>
<screen><userinput>cp src/init.c{,.backup}
sed 's/Sending processes/& started by init/g' \
src/init.c.backup > src/init.c</userinput></screen>
<para>Compile Sysvinit:</para>
<screen><userinput>make -C src</userinput></screen>
<para>Then install it:</para>
<screen><userinput>make -C src install</userinput></screen>
</sect2>
<sect2 id="conf-sysvinit" role="configuration"><title>Configuring Sysvinit</title>
<indexterm zone="conf-sysvinit">
<primary sortas="a-Sysvinit">Sysvinit</primary>
<secondary>configuring</secondary></indexterm>
<indexterm zone="conf-sysvinit"><primary sortas="e-/etc/inittab">/etc/inittab</primary></indexterm>
<para>Create a new <filename>/etc/inittab</filename> file by running the
following:</para>
<screen><userinput>cat > /etc/inittab << "EOF"</userinput>
# Begin /etc/inittab
id:3:initdefault:
si::sysinit:/etc/rc.d/init.d/rc sysinit
l0:0:wait:/etc/rc.d/init.d/rc 0
l1:S1:wait:/etc/rc.d/init.d/rc 1
l2:2:wait:/etc/rc.d/init.d/rc 2
l3:3:wait:/etc/rc.d/init.d/rc 3
l4:4:wait:/etc/rc.d/init.d/rc 4
l5:5:wait:/etc/rc.d/init.d/rc 5
l6:6:wait:/etc/rc.d/init.d/rc 6
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
su:S016:once:/sbin/sulogin
1:2345:respawn:/sbin/agetty -I '\033(K' tty1 9600
2:2345:respawn:/sbin/agetty -I '\033(K' tty2 9600
3:2345:respawn:/sbin/agetty -I '\033(K' tty3 9600
4:2345:respawn:/sbin/agetty -I '\033(K' tty4 9600
5:2345:respawn:/sbin/agetty -I '\033(K' tty5 9600
6:2345:respawn:/sbin/agetty -I '\033(K' tty6 9600
# End /etc/inittab
<userinput>EOF</userinput></screen>
<para> The -I '\033(K' switch tells agetty to send this escape sequence to
the terminal before doing anything else. This escape sequence switches the
console character set to a user-defined one, which can be modified by
running the <command>setfont</command> program.
Actually, the <command>console</command> initscript from the LFS-Bootscripts
package calls the <command>setfont</command> program during system
startup. Sending this escape sequence is necessary for
people who use non-ISO-8859-1 screen font, but does not hurt native English
speakers.</para>
</sect2>
<sect2 id="contents-sysvinit" role="content"><title>Contents of Sysvinit</title>
<segmentedlist>
<segtitle>Installed programs</segtitle>
<seglistitem><seg>halt, init, killall5, last, lastb (link to last), mesg, pidof (link to
killall5), poweroff (link to halt), reboot (link to halt), runlevel, shutdown, sulogin, telinit
(link to init), utmpdump and wall</seg></seglistitem>
</segmentedlist>
<variablelist><title>Short descriptions</title>
<varlistentry id="halt">
<term><command>halt</command></term>
<listitem>
<indexterm zone="ch-system-sysvinit halt"><primary sortas="b-halt">halt</primary></indexterm>
<para>normally invokes shutdown with the -h flag,
except when already in run-level 0, then it tells the kernel to halt the system.
But first it notes in the file <filename>/var/log/wtmp</filename> that the
system is being brought down.</para>
</listitem>
</varlistentry>
<varlistentry id="init">
<term><command>init</command></term>
<listitem>
<indexterm zone="ch-system-sysvinit init"><primary sortas="b-init">init</primary></indexterm>
<para>is the mother of all processes. It reads its
commands from <filename>/etc/inittab</filename>, which normally tell it which
scripts to run for which run-level, and how many gettys to spawn.</para>
</listitem>
</varlistentry>
<varlistentry id="killall5">
<term><command>killall5</command></term>
<listitem>
<indexterm zone="ch-system-sysvinit killall5"><primary sortas="b-killall5">killall5</primary></indexterm>
<para>sends a signal to all processes, except the processes in its own session --
so it won't kill the shell running the script that called it.</para>
</listitem>
</varlistentry>
<varlistentry id="last">
<term><command>last</command></term>
<listitem>
<indexterm zone="ch-system-sysvinit last"><primary sortas="b-last">last</primary></indexterm>
<para>shows which users last logged in (and out),
searching back through the file <filename>/var/log/wtmp</filename>. It can
also show system boots and shutdowns, and run-level changes.</para>
</listitem>
</varlistentry>
<varlistentry id="lastb">
<term><command>lastb</command></term>
<listitem>
<indexterm zone="ch-system-sysvinit lastb"><primary sortas="b-lastb">lastb</primary></indexterm>
<para>shows the failed login attempts, as logged in
<filename>/var/log/btmp</filename>.</para>
</listitem>
</varlistentry>
<varlistentry id="mesg">
<term><command>mesg</command></term>
<listitem>
<indexterm zone="ch-system-sysvinit mesg"><primary sortas="b-mesg">mesg</primary></indexterm>
<para>controls whether other users can send
messages to the current user's terminal.</para>
</listitem>
</varlistentry>
<varlistentry id="pidof">
<term><command>pidof</command></term>
<listitem>
<indexterm zone="ch-system-sysvinit pidof"><primary sortas="b-pidof">pidof</primary></indexterm>
<para>reports the PIDs of the given programs.</para>
</listitem>
</varlistentry>
<varlistentry id="poweroff">
<term><command>poweroff</command></term>
<listitem>
<indexterm zone="ch-system-sysvinit poweroff"><primary sortas="b-poweroff">poweroff</primary></indexterm>
<para>tells the kernel to halt the system and
switch off the computer. But see halt.</para>
</listitem>
</varlistentry>
<varlistentry id="reboot">
<term><command>reboot</command></term>
<listitem>
<indexterm zone="ch-system-sysvinit reboot"><primary sortas="b-reboot">reboot</primary></indexterm>
<para>tells the kernel to reboot the system. But see halt.</para>
</listitem>
</varlistentry>
<varlistentry id="runlevel">
<term><command>runlevel</command></term>
<listitem>
<indexterm zone="ch-system-sysvinit runlevel"><primary sortas="b-runlevel">runlevel</primary></indexterm>
<para>reports the previous and the current run-level, as noted in the last run-level
record in <filename>/var/run/utmp</filename>.</para>
</listitem>
</varlistentry>
<varlistentry id="shutdown">
<term><command>shutdown</command></term>
<listitem>
<indexterm zone="ch-system-sysvinit shutdown"><primary sortas="b-shutdown">shutdown</primary></indexterm>
<para>brings the system down in a secure way,
signaling all processes and notifying all logged-in users.</para>
</listitem>
</varlistentry>
<varlistentry id="sulogin">
<term><command>sulogin</command></term>
<listitem>
<indexterm zone="ch-system-sysvinit sulogin"><primary sortas="b-sulogin">sulogin</primary></indexterm>
<para>allows the superuser to log in. It is
normally invoked by init when the system goes into single user mode.</para>
</listitem>
</varlistentry>
<varlistentry id="telinit">
<term><command>telinit</command></term>
<listitem>
<indexterm zone="ch-system-sysvinit telinit"><primary sortas="b-telinit">telinit</primary></indexterm>
<para>tells init which run-level to enter.</para>
</listitem>
</varlistentry>
<varlistentry id="utmpdump">
<term><command>utmpdump</command></term>
<listitem>
<indexterm zone="ch-system-sysvinit utmpdump"><primary sortas="b-utmpdump">utmpdump</primary></indexterm>
<para>displays the content of the given login file in a friendlier format.</para>
</listitem>
</varlistentry>
<varlistentry id="wall">
<term><command>wall</command></term>
<listitem>
<indexterm zone="ch-system-sysvinit wall"><primary sortas="b-wall">wall</primary></indexterm>
<para>writes a message to all logged-in users.</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>
|