163 lines
6.6 KiB
TeX
163 lines
6.6 KiB
TeX
% master: inittab.tex
|
|
% Befehle v0.3
|
|
% 2011-05-26 (Rx)
|
|
|
|
\section{/etc/inittab}
|
|
%---------------------
|
|
|
|
Nach dem Kernelstart wird versucht das Programm init zu starten. Dabei werden
|
|
nacheinander die Verzeichnisse /etc/, /bin/ und /sbin/ nach init abgesucht. Kann
|
|
init /dev/console nicht öffnen wird im Einzelbenutzerbetrieb (Single User Mode)
|
|
gestartet. Beim LILO-Bootpromt kann init=/bin/sh angegeben werden um die Shell
|
|
anstelle von init zu laden. Das Programm init liest die Datei /etc/inittab und
|
|
wird durch die Datei das System konfigurieren. /etc/inittab wird vom Kommando
|
|
init Zeile für Zeile abgearbeitet. In jeder Zeile seht jeweils eine Anweisung.
|
|
Jede Zeile wird durch Doppelpunkte unterteilt. Der Aufbau sieht wie folgt aus:
|
|
|
|
\begin{verbatim}
|
|
Terminal:Termcapeintrag:Gettykommando Simpleinit von Peter Orbaek mit
|
|
Erweiterung von Werner Almesberger
|
|
\end{verbatim}
|
|
|
|
\subsection{Terminal}
|
|
%--------------------
|
|
|
|
Bezeichnet das Terminal (tty1, tty2, ttyS0 ...)
|
|
|
|
\subsection{Termcapeintrag}
|
|
%--------------------------
|
|
Wird in die TERM Variable der Shell geschrieben und sollte mit einem Eintrag in
|
|
der Datei /etc/termcap übereinstimmen.
|
|
|
|
\subsection{Gettykommando}
|
|
%-------------------------
|
|
Pfad und Optionen zum Getty-Kommando
|
|
|
|
\# Beispiel einer inittab für simpleinit
|
|
\# Format: Terminal:Termcapeintrag:Gettykommando
|
|
tty1:linux:/sbin/getty 9600 tty1
|
|
tty2:console:/sbin/getty 9600 tty2
|
|
tty5:con100x40:/sbin/getty 9600 tty5
|
|
ttyS1:vt102:/sbin/getty 9600 ttyS1
|
|
|
|
\begin{verbatim}
|
|
Kürzel:Arbeitsstufen:Modus:Kommando Sysvinit von Mike Jagdis und
|
|
Miquel van Smoorenburg
|
|
\end{verbatim}
|
|
|
|
\subsection{Kürzel}
|
|
%-------------------
|
|
Jede Aktion muß mit einem eindeutigen (maximal vierstelligen, a.out oder
|
|
Libraries\textless5.2.18 maximal zweistelligen) Kürzel versehen werden, das bei
|
|
Einträgen in Logfiles und bei Fehlermeldungen ausgegeben wird.
|
|
|
|
\subsection{Arbeitsstufen}
|
|
%-------------------------
|
|
Es werden hier die Arbeitsstufen (Runlevel) eingetragen. Zulässige
|
|
Arbeitsstufen sind 0 - 9 und s. Es können auch die Pseudoarbeitsstufen(ondemand)
|
|
a, b, c und q für einmalig auszuführende Kommandos verwendet werden. Es wird
|
|
ohne Groß und Kleinschreibung bezeichnet. In einer Zeile können bis zu 11
|
|
Runlevel zugeordnet werden. Wenn das Feld für den Runlevel leer ist, wird die
|
|
Aktion bei jedem Moduswechsel ausgeführt.
|
|
\begin{verbatim}
|
|
0 Systemhalt
|
|
S Einzelbenutzerbetrieb (Single User Mode)
|
|
1 Einzelbenutzerbetrieb (Single User Mode)
|
|
2 Lokaler Mehrbenutzerbetrieb ohne entferntes Netzwerk
|
|
(Local multiuser without remote network)
|
|
3 Voller Mehrbenutzerbetrieb mit Netzwerk
|
|
(Full multiuser with network)
|
|
4 Frei (Not used)
|
|
5 Voller Mehrbenutzerbetrieb mit Netzwerk und KDM, GDM oder XDM
|
|
(Full multiuser with network and xdm)
|
|
6 Systemneustart (System reboot)
|
|
Q Quit zum Neueinlesen der inittab
|
|
\end{verbatim}
|
|
|
|
\subsection{Modus}
|
|
%-----------------
|
|
Gibt an wie das Kommando im letzten Feld ausgeführt werden soll.
|
|
\begin{verbatim}
|
|
initdefault Bestimmt den Runlevel beim Systemstart.
|
|
sysinit Wird einmal nach dem Kernelstart ausgeführt.
|
|
bootwait Wird einmal ausgefürt, wenn in einem Mehrbenutzerbetrieb
|
|
gestartet wird und wartet bis das Kommando beendet ist.
|
|
boot Wie bootwait nur das nicht gewartet wird.
|
|
respawn Überwacht das laufende Kommando und startet es neu, wenn es
|
|
beendet wurde. Wird es in zwei Minuten 10 mal neu gestartet,
|
|
setzt init das Kommando für fünf Minuten aus.
|
|
ondemand Wie respawn, um mit Buchstaben gekennzeichnete Level einzelne
|
|
Kommandos mit telinit zu starten.
|
|
wait Wartet bis das Kommando beendet ist.
|
|
once Wird einmal ausgefürt, es wird nicht gewartet.
|
|
off Wenn das Kommando läuft, wird es angehalten.
|
|
ctrlaltdel Kommando (Signal SIGINT, [Strg]+[Alt]+[Entf]) z.B. Rebooten des
|
|
Systems.
|
|
kbrequest Kommando wird ausgeführt, wenn das Signal SIGWINCH
|
|
[Alt]+[Pfeil hoch] von der Tastatur kommt.
|
|
powerwait Wenn init sich in einem passenden Runlevel befindet, das
|
|
Signal SIGPWR erhält oder über Pipeline /dev/initctrl den
|
|
entsprechenden Befehl erhält und wartet auf Beendigung des
|
|
Kommandows. Das Signal kann mit Hilfe eines Dämons von einer USV
|
|
erzeugt werden.
|
|
powerfail Wie powerwait wartet jedoch nicht.
|
|
powerfailnow Wie powerwait es muß die Datei /etc/powerstatus zusätzlich das
|
|
Wort Low enthalten. So kann das APM eines Notebooks mit Hilfe
|
|
eines Dämons das System herrunterfahren.
|
|
powerokwait Wie powerwait es muß die Datei /etc/powerstatus zusätzlich das
|
|
Wort OK enthalten. Auf diese weise kann das System in den
|
|
normalen Zustand gebracht werden, nachdem die Stromversorgung
|
|
wieder hergestellt ist.
|
|
\end{verbatim}
|
|
|
|
\subsection{Kommando}
|
|
%--------------------
|
|
Pfad und Optionen zum Kommando, wird durch die Bourne-Again-Shell abgearbeitet.
|
|
Bei jedem Kommandostart wird versucht die Datei /etc/initscript abzuarbeiten,
|
|
die dann das Kommando startet.
|
|
|
|
\begin{verbatim}
|
|
# Beispiel einer inittab für sysvinit
|
|
# Format: Kürzel:Arbeitsstufen:Modus:Kommando
|
|
|
|
# Bestimmt den Runlevel beim Systemstart
|
|
id:5:initdefault:
|
|
|
|
# Erstes Script, wenn nicht im Notfallsystem (-b) gestartet wird.
|
|
si::bootwait:/etc/init.d/boot
|
|
|
|
# /etc/init.d/rc übernimmt die Runlevel Behandlung
|
|
l0:0:wait:/etc/init.d/rc 0
|
|
l1:1:wait:/etc/init.d/rc 1
|
|
l2:2:wait:/etc/init.d/rc 2
|
|
l3:3:wait:/etc/init.d/rc 3
|
|
#l4:4:wait:/etc/init.d/rc 4
|
|
l5:5:wait:/etc/init.d/rc 5
|
|
l6:6:wait:/etc/init.d/rc 6
|
|
|
|
# Bestimmt den Einzelbenutzerbetrieb (Single User Mode)
|
|
ls:S:wait:/etc/init.d/rc S
|
|
~~:S:respawn:/sbin/sulogin
|
|
|
|
# Aktion bei Signal SIGINT, [Strg]+[Alt]+[Entf]
|
|
ca::ctrlaltdel:/sbin/shutdown -r -t 4 now
|
|
|
|
# Aktion bei Signal SIGWINCH [Alt]+[Pfeil hoch]
|
|
kb::kbrequest:/bin/echo "'Keyboard Request -- edit /etc/inittab to let this work."'
|
|
|
|
# Aktion bei Stormausfall und Wiederherstellung
|
|
pf::powerwait:/etc/init.d/powerfail start
|
|
pn::powerfailnow:/etc/init.d/powerfail now
|
|
#pn::powerfail:/etc/init.d/powerfail now
|
|
po::powerokwait:/etc/init.d/powerfail stop
|
|
|
|
# getty-Programme für die normalen Runlevels
|
|
1:2345:respawn:/sbin/mingetty --noclear tty1
|
|
2:2345:respawn:/sbin/mingetty tty2
|
|
3:2345:respawn:/sbin/mingetty tty3
|
|
4:2345:respawn:/sbin/mingetty tty4
|
|
5:2345:respawn:/sbin/mingetty tty5
|
|
6:2345:respawn:/sbin/mingetty tty6
|
|
#S0:12345:respawn:/sbin/agetty -L 9600 ttyS0 vt102
|
|
\end{verbatim}
|
|
|