File: init.8

package info (click to toggle)
manpages-de 0.4-8
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 3,808 kB
  • ctags: 4
  • sloc: sh: 7,666; makefile: 60
file content (533 lines) | stat: -rw-r--r-- 13,574 bytes parent folder | download | duplicates (2)
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
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, write to the Free
.\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
.\" USA.
.\" 
.\" Translated into german by Martin Okrslar <okrslar@cip.informatik.uni-muenchen.de>
.\" Modified Fri Jan 12 01:15:29 2001 by Martin Schulze <joey@infodrom.north.de>
.\" 
.TH INIT 8 "11 February 2000" "" "Dienstprogramme zur Systemverwaltung"
.SH BEZEICHNUNG
init, telinit \-  Initialisierung der Kontrolle ber Prozesse und Runlevel
.SH SYNTAX
.B /sbin/init
.RB [ -t
.IR sec ]
.RB [ 0123456SsQq ]

.B  /sbin/telinit
.RB [ -t
.IR sec ]
.RB [ 0123456SsQq ]
.SH BESCHREIBUNG
.SS init
.B Init
ist der Vater aller Prozesse.  Seine Hauptaufgabe besteht darin, Prozesse nach 
einem Skript in der Datei
.I /etc/inittab
zu erzeugen (siehe auch 
.BR inittab (5)).
Diese Datei hat normalerweise bestimmte Eintrge, die 
\fBinit\fP dazu veranlassen auf jeder Leitung
.BR getty s
zu erzeugen, auf 
der sich ein Benutzer einloggen kann.  Er kontrolliert 
auch alle autonomen Prozesse, die von einem bestimmten System bentigt  
werden.

.SH RUNLEVEL
Ein Runlevel
ist ein Softwarezustand des Systems, der es nur 
einer bestimmten Gruppe von Prozessen erlaubt ausgefhrt zu werden.
Die Prozesse, die von
.B init
fr jeden dieser Runlevel erzeugt werden, sind in der Datei
.I /etc/inittab
definiert.
.B Init
kann sich in einem von acht Runlevel befinden,
.B 0\-6
und
.B S
oder
.BR s .
.B Init
wechselt den Runlevel, wenn ein priviligierter Benutzer das Programm
.B /sbin/telinit
startet, das
.B init
bestimmte Signale sendet, die ihm sagen, in welchen Runleveles
wechseln soll.

Die Runlevel
.BR 0 ", " 1 " und " 6
sind reserviert.  Der Runlevel
.B 0
wird dazu verwendet, das System anzuhalten, der Runlevel
.B 6
iwr dafr benutzt, das System neuzusatarten, und der Runlevel
.B 1
wird dafr verwendet, das System in den Single-User-Modus
herunterzufahren.  Der Runlevel
.B S
wird normalerweise nicht direkt angesprungen, sondern dient nur als
Zwischenstufe fr die Skripte, die ausgefhrt werden, wenn in den
Runlevel
.B 1
bergegangen wird.  Weitere Informationen darber finden Sie in den
Handbuchseiten zu
.BR shutdown (8)
und
.BR inittab (5).

Die Runlevel
.B 7-9
sind ebenfalls gltig, jedoch nicht wirklich dokumentiert.  Das liegt
daran, da die  "traditionellen" UNIX\-Varianten diese nicht benutzen.
Manche werden sich vielleicht auch wundern, da es zwischen den
Runlevel
.B S
und
.B s
keinen ersichtlichen Unterschied gibt.  Tatschlich sind beide 
Optionen lediglich ein Alias fr ein und den selben Runlevel.

.SH SYSTEMSTART
Wenn
.B init
im letzten Schritt des Bootprozesses aufgerufen wird, 
sucht er nach der Datei
.I /etc/inittab
und sieht nach, ob es dort einen
.BR initdefault \-Eintrag
gibt (siehe 
.BR inittab (5)).
.B initdefault
bestimmt den
.RI Anfangs\- runlevel
des Systems.
Falls es dort keine derartige Eintragung gibt, oder gar keine 
.IR inittab \-Datei
existiert, so mu an der Systemkonsole der
.I runlevel
eingegeben werden.

Die
.I runlevel
.B S
oder
.B s
bringen das System in den 
Single-user Modus, und bentigen keine
.IR /etc/inittab \-Datei.
Im Single-user-Modus wird auf
.I /dev/console
.B /sbin/sulogin
aufgerufen.

Wenn das System in den Single-user Modus bergeht, liest
.B init
die 
.BR ioctl (2)\-Zustnde
der Konsole in
.IR /etc/ioctl.save .
Existiert 
diese Datei nicht, dann initialisiert
.B init
die Leitung mit 9600 BAUD und mit
.BR CLOCAL \-Einstellungen.
Wenn
.B init
den Single-User-Modus verlt, schreibt es die
.IR ioctl \-Einstellungen
in  diese Datei, so da diese Eintrge bei der nchsten Single-User-Sitzung 
wiederverwendet werden knnen.

Wenn
.B init
das erste mal in einen Multi-User-Modus eintritt, fhrt 
er die
.BR boot \-
und
.BR bootwait \-Eintrge
der Datei
.I /etc/inittab
aus, die es erlauben, 
da die Dateisysteme gemountet werden knnen, bevor sich ein Benutzer 
einloggen kann.  Danach werden alle die
.I runlevel
betreffenden 
Eintrge ausgefhrt.

Immer wenn
init
einen neuen Proze startet, schaut das Programm erst nach, 
ob die Datei
.I /etc/initscript
existiert.  Wenn es sie gibt, benutzt 
.B init
das Skript dieser Datei um den Proze zu starten.

Jedesmal, wenn ein Kindproze terminiert, hlt
.B init
diese Tatsache und den Grund, weshalb der Kindproze gestorben ist, in den 
Dateien
.I /var/run/utmp
und
.I /var/log/wtmp
fest, falls diese Dateien existieren.

.SH RUNLEVEL-NDERUNGEN
Sobald alle vorgesehenen Prozesse erzeugt worden sind, wartet
.B init
darauf, da ein Kindproze stirbt, auf ein Stromausfallsignal 
oder auf eine Anweisung von
.BR /sbin/telinit ,
in welchen
.I runlevel
er wechseln soll.  Wenn eine der drei oben genannten Bedingungen  
erfllt ist, untersucht
.B init
nochmals die
.IR /etc/inittab \-Datei,
da dieser 
Datei jederzeit neue Eintrge hinzugefgt werden knnen.  Man kann den 
schlafenden
.BR init \-Proze
auch mit den Kommandos
.B Q
oder 
.B q
aufwecken, was ihn dazu veranlat, nochmals die 
.IR /etc/inittab \-Datei
zu examinieren.

Wenn
.B init
sich nicht im Single-User Modus befindet, und ein 
Stromausfallsignal (SIGPWR) empfngt, liest es die Datei
.IR /etc/powerstatus .
Anschlieend wird ein Befehl anhand des Inhalts der Datei gestartet:
.IP F(AIL)
Strom fllt aus, die USV versorgt den Rechner mit Strom.  Die
.BR powerwait "\- und " powerfail \-Eintrge
werden ausgefhrt.
.IP O(K)
Strom wurde wiederhergestellt, es werden die
.BR powerokwait \-Eintrge
ausgefhrt.
.IP L(OW)
Strom wird knapp und die USV geht auf dem Zahnfleisch.  Die
.BR powerfailnow \-Eintrge
werden ausgefhrt.
.PP
Wenn
.I /etc/powerstatus
nicht existiert oder etwas anderes enthlt als die Buchstaben
.BR F ", " O " oder " L,
wird
.B init
sich so verhalten als htte es den Buchstaben
.B F
gelesen.

Die Verwendung von SIGPWR und
.I /etc/powerstatus
werden nicht empfohlen.  Wenn etwas mit
.B init
interagieren mchte, sollte der Kontrollkanal
.I /dev/initctl
verwendet werden - siehe Quellcode des sysvinit-Pakets fr mehr
Dokumentation darber.

Wenn
.B init
angewiesen wird den
.I runlevel
zu wechseln, wird das Warnsignal
.B SIGTERM
an alle Prozesse geschickt, die nicht in der Datei
.I /etc/inittab
fr den  neuen
.I runlevel
vorgesehen sind.
.B Init
wartet dann 5 Sekunden bevor er diese Prozesse mit dem kill-Signal 
.B SIGKILL
gewaltsam terminiert.  Achtung:
.B init
nimmt an, da 
alle diese Prozesse (und deren Nachfahren) in derselben Prozegruppe  
verblieben sind, die
.B init
ursprnglich fr sie erzeugt hat (siehe 
.BR setpgrp (2)).
Wenn irgendeiner dieser Prozesse seine 
Prozeguppenzugehrigkeit gendert hat, wird er diese Signale nicht  
erhalten!  Solche Prozesse mssen einzeln terminiert werden!

.SH TELINIT
Das Programm
.B /sbin/telinit
ist auf
.B /sbin/init
gelinkt.  Er 
wird mit Argumenten, die aus nur einem Buchstaben bestehen gesteuert, und 
sendet
.B init
Anweisungen (Signale), welche Aktionen dieses auszufhren 
hat.  Die folgenden Argumente dienen als Anweisungen fr
.BR telinit :

.TP
.BR 0 , 1 , 2 , 3 , 4 , 5 " oder " 6
befehlen
.B init
in den angegebenen runlevel zu wechseln.
.TP
.B a , b , c
befehlen
.B /sbin/init
nur die Eintrge der Datei
.I /etc/inittab
auszufhren, die den Runlevel
.BR a ", " b " oder " c
haben.
.TP
.BR Q " oder " q
befehlen
.B /sbin/telinit
nocheinmal die Datei
.I /etc/inittab
einzulesen.
.TP
.BR S " oder " s
befehlen
.B /sbin/telinit
in den Single-User-Modus zu schalten.
.PP
.B /sbin/telinit
kann den
.BR init \-Proze
auch anweisen, wieviel 
Zeit dieser zwischen dem Senden des TERM und des KILL Signals warten 
soll; die Standardeinstellung ist 5 Sekunden, kann jedoch durch die 
Option
.BI \-t " sec"
verndert werden.

.B /sbin/telinit
kann nur von Benutzern mit einer entsprechenden Berechtigung aufgerufen werden.

Das
.BR init \-Programm
berprft, ob es als
.B init
oder
.B telinit
gestartet wurde, indem es auf seine Proze-ID schaut; die reelle
Proze-ID von
.B init
ist immer 1.  Von daher darf man einfach auch
.B init
anstelle von
.B telinit
verwenden oder eines Aliases.

.SH UMGEBUNG
.B Init
setzt folgende Umgebungsvariablen fr alle seine Kindprozesse:
.TP 
.B PATH
Wird standarmig auf
.I /usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin
gesetzt.
.TP
.B INIT_VERSION
Wie der Name schon sagt.  Ntzlich, wenn ein Skript direkt von init 
ausgefhrt werden soll.
.TP
.B RUNLEVEL
Der augenblickliche Runlevel des Systems.
.TP
.B PREVLEVEL
Der vorherige Runlevel (ntzlich nach einer nderung des Runlevels).
.TP
.B CONSOLE
Die System-KOnsole.  Diese wird tatschlich vom Kernel vererbt; wenn
sie jedoch nicht gesetzt ist, wird
.B init
sie auf
.I /dev/console
setzen als Voreinstellung.

.SH BOOTSIGNALE
Es ist mglich
.B init
eine Reihe von Bootsignalen (bootflags) vom 
Bootmonitor aus (d.h. vom LILO aus) zu bergeben. 
.B Init
akzeptiert folgende Signale:
.TP
.BR "\-s" ", " S ", " single
Bootet im Single-user Modus.  In diesem Modus wird zuerst die Datei
.I /etc/inittab
eingelesen; danach werden, noch bevor die 
Single-User-Shell gestartet wird, die Bootskripte der Datei
.I /sbin/init.d/boot
ausgefhrt.
.TP
.BR 1 , 2 , 3 , 4 " oder " 5
Weist
.B init
an, in welchen Runlevel gebootet werden soll.
.TP
.BR \-b ", " emergency
Gibt
.B init
die Anweisung direkt in den Single-User-Modus zu booten,  
ohne irgendwelche Startup-Skripte auszufhren.
.TP
.BR \-a ", " auto
.\" ACHTUNG: Englisches Original ergibt keinen Sinn...
Der LILO-Bootloader fgt das Wort an den Kernel.
.B init
ist in der Lage, es zu lesen.
.TP
.B \-z xxx
Das Argument zu
.B \-z
wird irgnoriert.  Sie knnen es benutzen, um die Komandozeile etwas zu
verlngern, damit sie etwas mehr Platz auf dem Stack reserviert.
.B Init
kann anschlieend die Komandozeile derart modifizieren, da
.BR ps (1)
den aktuellen Runlevel anzeigt.

.SH SCHNITTSTELLE
.B Init
lauscht auf einem Fifo in
.IR /dev ", " /dev/initctl ,
auf Nachrichten.
.B Telinit
benutzt diesen, um mit
.B init
zu kommunizieren. Die Schnittstelle ist noch nicht sehr ausfhrlich
dokumentiert.  Wer interessiert ist, mge die Datei
.I initreq.h
im Quellcode von init studieren.

.SH SIGNALE
Init reagiert auf verschiedene Signale:
.TP 0.5i
.B SIGHUP
Init sucht nach
.I /etc/initrunlvl 
und
.IR /var/log/initrunlvl .
Wenn eine dieser Dateien existiert und einen ASCII-Runlevel enthlt,
wechselt
.B init
in den neuen Runlevel.
.I Dieses existiert nur fr Abwrtskompatibilitt!
In normalen Fllen (wenn die Dateien nicht existieren) verhlt sich
init, als wenn
.B telinit q
ausgefhrt wurde.
.PP
.TP 0.5i
.B SIGUSR1
Beim Emfang dieses Signals schliet init sein Kontroll-Fifo
.I /dev/initctl
und ffnet ihn wieder.  Das ist sinnvoll fr Boot-Skripte, wenn
.I /dev
neu gemountet wird.
.TP 0.5i
.B SIGINT
Normalerweise sendet der Kernel dieses Signal an
.IR init ,
wenn CTRL-ALT-DEL gedrckt wurde.  Es aktiviert die
.IR ctrlaltdel \-Aktion.
.TP 0.5i
.B SIGWINCH
Der Kernel sendet dieses Signal, wenn die
.IR KeyboardSignal \-Taste
gedrckt wurde.  Es aktiviert die
.IR kbdrequest \-Aktion.

.SH "KONFORM ZU"
.B Init
ist kompatibel zum System V init.  Er arbeitet eng mit 
den Skripten zusammen, die in den Verzeichnissen
.I /sbin/init.d
und 
.I /sbin/init.d/rc{runlevel 1\-6}.d
untergebracht sind.  Wenn das 
System dieser Konvention folgt, sollte sich in diesem Verzeichniss eine 
.B README \-Datei
befinden, die erklrt wie diese Skripte funktionieren.

.SH DATEIEN
.nf
.I /etc/inittab
.I /etc/initscript
.I /dev/console
.I /etc/ioctl.save
.I /var/run/utmp
.I /var/log/wtmp
.I /dev/initctl
.fi

.SH WARNUNGEN
.B Init
geht davon aus, da alle Prozesse und Kindprozesse 
in der selben Prozessgruppe verbleiben, die ursprnglich fr 
sie eingerichtet worden ist.  Wenn einer dieser Prozesse in eine andere 
Gruppe wechselt, kann
.B init ihn nicht mehr beenden, und es kann 
passieren, da man in einem Zustand landet, in dem zwei Prozesse von 
einer Terminalleitung Befehle einlesen wollen.

.SH DIAGNOSE
Wenn
.B init
herausfindet, da es kontinuierlich einen Eintrag fter als 10 mal in
2 Minuten neu erzeugt, wird es annehmen, da ein Fehler in der
Befehlszeile vorliegt, einen Fehler erzeugen, Meldungen auf die
Systemkonsole erstatten und sich weigern, den Eintrag auszufhren, bis
5 Minuten vergangen sind oder es ein Signal empfngt.  Dieses
verhindert, da Systemresourcen verschwendet werden, wenn jemand einen
Tippfehler in
.I /etc/inittab
einbaut oder das zum Eintrag gehrende Programm lscht.

.SH AUTOR
Miquel van Smoorenburg <miquels@cistron.nl>, ursprngliche Manpage von  
Michael Haardt <u31b3hs@pool.informatik.rwth-aachen.de>, bersetzung 
Martin Okrslar <okrslar@informatik.uni-muenchen.de> und berarbeitung
von Martin Schulze <joey@infodrom.north.de>.
.SH "SIEHE AUCH"
.BR getty (1),
.BR login (1),
.BR sh (1),
.BR who (1),
.BR shutdown (1),
.BR kill (2),
.BR inittab (5), 
.BR inscript (5),
.BR utmp (5).