Linuxfrage zu "halt"

Anlaufschwierigkeiten? Was ist was? Worum geht's?
palace
Erleuchteter
Erleuchteter
Beiträge: 441
Registriert: Dienstag 11. März 2003, 03:42

Linuxfrage zu "halt"

Beitrag von palace »

Hi,

auf der Box gibt es ein halt Kommando und ein halt Skript.

Wann und durch was wird das halt Skript ausgeführt?
In der rcS, init oder start_neutrino hab ich es nicht gefunden...
Z80
Erleuchteter
Erleuchteter
Beiträge: 710
Registriert: Dienstag 3. September 2002, 12:54

Re: Linuxfrage zu "halt"

Beitrag von Z80 »

palace hat geschrieben:Hi,
auf der Box gibt es ein halt Kommando und ein halt Skript.
Wann und durch was wird das halt Skript ausgeführt?
In der rcS, init oder start_neutrino hab ich es nicht gefunden...
schau mal in /etc/inittab

Code: Alles auswählen

...
::restart:/sbin/init
::ctrlaltdel:/sbin/reboot
::shutdown:/etc/init.d/halt
palace
Erleuchteter
Erleuchteter
Beiträge: 441
Registriert: Dienstag 11. März 2003, 03:42

Beitrag von palace »

wird das "halt Skript auch bei "Neu Starten" ausgeführt?
Wenn ich in der start_neutrino unten schaue, wird entweder ein halt oder ein reboot ausgeführt...
Verstehe ich dass so, dass hier den Kommandos Skripte zugeordnet werden?
Z80
Erleuchteter
Erleuchteter
Beiträge: 710
Registriert: Dienstag 3. September 2002, 12:54

Beitrag von Z80 »

palace hat geschrieben:Verstehe ich dass so, dass hier den Kommandos Skripte zugeordnet werden?
http://linux.about.com/od/commands/l/bl ... nittab.htm
http://www.linux-fuer-alle.de/doc_show. ... 28&catid=8
http://www.oreilly.de/german/freebooks/ ... ap043.html
init und inittab
Nach der Initialisierung der Gerätetreiber führt der Kernel das Programm init aus, das in einem der Verzeichnisse /etc , /bin oder /sbin steht (auf den meisten Systemen in /sbin/init ).

init ist ein Programm mit mehreren Aufgaben, das neue Prozesse erzeugt und bestimmte Programme nach deren Terminierung wieder startet. So läuft z.B. auf jeder virtuellen Konsole ein getty -Prozeß, der von init gestartet wird. Wenn Sie an einer der virtuellen Konsolen eine Login-Sitzung beenden, terminiert der getty -Prozeß und init startet einen neuen, damit Sie wieder einloggen können.

init ruft außerdem beim Booten des Systems eine Reihe von Programmen und Skripts auf. Die Datei /etc/inittab kontrolliert sämtliche Aktionen von init . Jede Zeile dieser Datei hat das Format:

code:runlevel:aktion:befehl

Code ist ein eindeutiger Name aus einem oder zwei Buchstaben, der jeden Eintrag in dieser Datei identifiziert. Einige dieser Einträge müssen einen bestimmten Code haben, damit sie korrekt funktionieren; mehr dazu erfahren Sie weiter unten.

Runlevel ist eine Liste der »Runlevels«, auf denen der betreffende Eintrag ausgeführt werden soll. Ein Runlevel ist einfach eine Ziffer oder ein Buchstabe zur Bezeichnung des aktuellen Systemzustands bei der Ausführung von init . Ein Beispiel: Wenn der Runlevel des Systems auf 3 geändert wird, werden diejenigen Einträge in /etc/inittab ausgeführt, die im Feld Runlevel eine 3 stehen haben. Die Runlevels bieten eine einfache Methode, die Einträge in /etc/inittab gruppenweise zusammenzufassen. Sie könnten z.B. festlegen, daß Runlevel 1 nur das notwendige Minimum an Skripts ausführt, Runlevel 2 alles aus Runlevel 1 und zusätzlich die Netzwerkkonfiguration durchführt, während Runlevel 3 alles aus Runlevel 1 und 2 sowie den Wählzugang zum System konfiguriert usw.

In der Regel brauchen Sie sich mit den Runlevels nicht weiter zu befassen. Das System begibt sich beim Booten auf den (in /etc/inittab ) voreingestellten Runlevel. Bei den meisten Systemen ist das Runlevel 5. Solange Sie keinen besonderen Grund haben, das System nicht mit allen hier beschriebenen Konfigurationsskripts hochzufahren, können Sie einfach den voreingestellten Runlevel benutzen.

Das Feld Befehl enthält den Befehl, den init für diesen Eintrag ausführen wird. Das Feld Aktion weist init an, wie ein Eintrag ausgeführt werden soll, z.B. ob ein Befehl nur einmal ausgeführt oder ob er nach der Terminierung jedesmal erneut aufgerufen werden soll.

Lassen Sie uns einen Blick auf die beispielhafte /etc/inittab in werfen.

Beispiel 4-1. Beispielhafte /etc/inittab-Datei

# Set the default runlevel to five
# Voreinstellung für Runlevel ist 5
id:5:initdefault:
# Execute /etc/rc.d/rc.S when the system boots
# Beim Booten des Systems /etc/rc.d/rc.S aufrufen
si:S:sysinit:/etc/rc.d/rc.S
# Run this script when entering runlevel S (single-user mode)
# Bei Runlevel S (Single-User-Modus) dieses Skript ausführen
su:S:wait:/etc/rc.d/rc.K
# Run this script for all other runlevels (multi-user mode)
# Bei allen anderen Runlevels (Multi-User-Modus) dieses Skript ausführen
rc:12345:wait:/etc/rc.d/rc.M
# Executed when we press ctrl-alt-delete
# Wird beim 'Affengriff' CTRL-ALT-DELETE ausgeführt
ca::ctrlaltdel:/sbin/shutdown -t3 -rf now
# Start agetty for virtual consoles 1 through 6
# agetty starten auf virtuellen Konsolen 1 bis 6
c1:12345:respawn:/sbin/agetty 38400 tty1
c2:12345:respawn:/sbin/agetty 38400 tty2
c3:45:respawn:/sbin/agetty 38400 tty3
c4:45:respawn:/sbin/agetty 38400 tty4
c5:45:respawn:/sbin/agetty 38400 tty5
c6:45:respawn:/sbin/agetty 38400 tty6

Der tatsächliche Inhalt von /etc/inittab hängt von Ihrem System und der Linux-Distribution ab, die Sie installiert haben