linux.txt/linux/dateien/inittab.tex
2025-02-15 15:39:11 +01:00

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}